随笔分类 - Sqli-labs
摘要:本关的sql语句为 $sql = "SELECT * FROM users ORDER BY '$id'"; 将id变为字符型,因此根据我们上述提到的知识,我们依旧按照注入的位置进行分类。 1、order by后的参数 我们只能使用and来进行报错和延时注入。我们下面给出几个payload示例。 ①
阅读全文
摘要:从本关开始,我们开始学习order by 相关注入的知识。 本关的sql语句为 $id=$_GET['sort']; $sql = "SELECT * FROM users ORDER BY $id"; 尝试?sort=1 desc或者asc,显示结果不同,则表明可以注入。(降序or升序排列) 从上
阅读全文
摘要:此处应介绍order by后的注入以及limit注入,我们结合less-46更容易讲解,(在less46中详细讲解)所以此处可根据less-46了解即可。
阅读全文
摘要:同样的,45关与43关的payload是一样的,只不过45关依旧没有报错信息。 登录 username:admin Password:c');create table less45 like users# 成功创建了新表。
阅读全文
摘要:本关是基于盲注的,这里盲注主要是要没有报错信息,所以要采用盲注。这关与42关的区别就在于没有报错信息,同时,我们使用同样方式的payload: 登录 username:admin Password:a';insert into users(id,username,password) values (
阅读全文
摘要:本关与42关的原理基本一致,我们还是定位在login.php中的password。关键代码: $username = mysqli_real_escape_string($con1, $_POST["login_user"]); $password = $_POST["login_password"
阅读全文
摘要:pass_change.php关键代码 $username= $_SESSION["username"]; $curr_pass= mysql_real_escape_string($_POST['current_password']); $pass= mysql_real_escape_strin
阅读全文
摘要:此处与less-39是一致的,区别在于41错误不回显。所以我们称之为盲注。 Payload: http://127.0.0.1/sql/Less-41/index.php?id=1;insert into users(id,username,password) values ('41','less4
阅读全文
摘要:本关的sql语句为SELECT * FROM users WHERE id=('$id') LIMIT 0,1 我们根据sql语句构造以下的payload: http://127.0.0.1/sql/Less-40/index.php?id=1');insert into users(id,user
阅读全文
摘要:和less-38的区别在于sql语句的不一样:SELECT * FROM users WHERE id=$id LIMIT 0,1 也就是数字型注入,我们可以构造以下的payload: http://127.0.0.1/sql/Less-39/index.php?id=1;insert into u
阅读全文
摘要:学习了关于stacked injection的相关知识,我们在本关可以得到直接的运用。 在执行select时的sql语句为:SELECT * FROM users WHERE id='$id' LIMIT 0,1 可以直接构造如下的payload: http://127.0.0.1/sql/Less
阅读全文
摘要:Stacked injections:堆叠注入。从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一条语句结尾加 ; 表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做stacked injection。 0
阅读全文
摘要:关键代码 $uname1=$_POST['uname']; $passwd1=$_POST['passwd']; $uname = mysql_real_escape_string($uname1); $passwd= mysql_real_escape_string($passwd1); mysq
阅读全文
摘要:关键代码 function check_quotes($string) { $string= mysql_real_escape_string($string); return $string; } $id=check_quotes($_GET['id']); mysql_query("SET NA
阅读全文
摘要:35关和33关是大致的一样的,唯一的区别在于sql语句的不同。 function check_addslashes($string) { $string = addslashes($string); return $string; } $id=check_addslashes($_GET['id']
阅读全文
摘要:关键代码 $uname1=$_POST['uname']; $passwd1=$_POST['passwd']; $uname = addslashes($uname1); $passwd= addslashes($passwd1); mysql_query("SET NAMES gbk"); @$
阅读全文
摘要:关键代码 function check_addslashes($string) { $string= addslashes($string); return $string; } $id=check_addslashes($_GET['id']); mysql_query("SET NAMES gb
阅读全文
摘要:关键代码 function check_addslashes($string) { $string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string); //escape any backslash $string = preg
阅读全文
摘要:Less-32,33,34,35,36,37六关全部是针对'和\的过滤,所以我们放在一起来进行讨论。 我们在此介绍一下宽字节注入的原理和基本用法。 原理:mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围)。我们在过
阅读全文
摘要:Less-31与前面两关的方式是一样的,我们直接看到less-31的sql语句: $id=$_GET['id']; $id = '"' .$id. '"'; $sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1"; 所以payload为: http:/
阅读全文
浙公网安备 33010602011771号