摘要:
Sqli-labs是一个印度程序员写的,用来学习sql注入的一个游戏教程。 博客地址为:http://dummy2dummies.blogspot.hk/ 博客当中有一些示例,国内很多博客内容都是从该作者的博客翻译过来的。同时该作者也发了一套相关的视频,在youtube上可以查看。 此处考虑到有些朋 阅读全文
posted @ 2020-04-09 22:59
zhengna
阅读(2269)
评论(0)
推荐(1)
摘要:
通过对sqli-labs的各个关卡的手工注入实践以及整理注入步骤,使自己加深了对SQL注入的理解。相信学完了SQL注入的原理后,以后不管是使用工具注入,还是写脚本批量注入,都会更加得心应手。我一直认为,会用工具固然重要,但是明白工具背后的原理以及实现思路更加重要。所谓知其然,知其所以然。再次感谢lc 阅读全文
posted @ 2020-04-09 22:58
zhengna
阅读(233)
评论(0)
推荐(0)
摘要:
和less62、63、64一致,我们只需要看到sql语句 $id = '"'.$id.'"';$sql="SELECT * FROM security.users WHERE id=($id) LIMIT 0,1"; 对id进行了("")的处理,因此构造payload: http://127.0.0 阅读全文
posted @ 2020-04-09 22:57
zhengna
阅读(248)
评论(0)
推荐(0)
摘要:
和less62、63一致,我们只需要看到sql语句上 $sql="SELECT * FROM security.users WHERE id=(($id)) LIMIT 0,1"; 因此构造payload: http://127.0.0.1/sql/Less-64/?id=1)) and if(as 阅读全文
posted @ 2020-04-09 22:56
zhengna
阅读(245)
评论(0)
推荐(0)
摘要:
和less62一致,我们只需要看到sql语句上 $sql="SELECT * FROM security.users WHERE id='$id' LIMIT 0,1"; 因此构造payload: http://127.0.0.1/sql/Less-63/?id=1' and if(ascii(su 阅读全文
posted @ 2020-04-09 22:55
zhengna
阅读(240)
评论(0)
推荐(0)
摘要:
此处union和报错注入都已经失效了,那我们就要使用延时注入了,此处给出一个示例 payload: http://127.0.0.1/sql/Less-62/?id=1') and if(ascii(substr((select group_concat(table_name) from infor 阅读全文
posted @ 2020-04-09 22:54
zhengna
阅读(418)
评论(0)
推荐(0)
摘要:
与less58、59、60一致,只是对id的处理不同,直接给出一个示例payload: http://127.0.0.1/sql/Less-61/?id=-1')) and extractvalue(1,concat(0x7e,(select group_concat(table_name) fro 阅读全文
posted @ 2020-04-09 22:53
zhengna
阅读(222)
评论(0)
推荐(0)
摘要:
与less58、59一致,直接给出一个示例payload: http://127.0.0.1/sql/Less-60/?id=-1") and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_s 阅读全文
posted @ 2020-04-09 22:52
zhengna
阅读(241)
评论(0)
推荐(0)
摘要:
与less58一致,直接给出一个示例payload: http://127.0.0.1/sql/Less-59/?id=-1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema 阅读全文
posted @ 2020-04-09 22:51
zhengna
阅读(283)
评论(0)
推荐(0)
摘要:
执行sql语句后,并没有返回数据库当中的数据,所以我们这里不能使用union联合注入,这里使用报错注入。但是需要注意这里只有5次机会尝试。 找表名 http://127.0.0.1/sql/Less-58/?id=-1' and extractvalue(1,concat(0x7e,(select 阅读全文
posted @ 2020-04-09 22:50
zhengna
阅读(300)
评论(0)
推荐(0)
摘要:
与less54、55、56形式是一致的,我们关注sql语句 $id= '"'.$id.'"'; $sql="SELECT * FROM security.users WHERE id=$id LIMIT 0,1"; 因此给出示例payload http://127.0.0.1/sql/Less-57 阅读全文
posted @ 2020-04-09 22:49
zhengna
阅读(201)
评论(0)
推荐(0)
摘要:
与less54.55形式是一致的,我们关注sql语句 $sql="SELECT * FROM security.users WHERE id=('$id') LIMIT 0,1"; 因此给出示例payload http://127.0.0.1/sql/Less-56/?id=-1') union s 阅读全文
posted @ 2020-04-09 22:48
zhengna
阅读(244)
评论(0)
推荐(0)
摘要:
本关的sql语句为: $sql="SELECT * FROM security.users WHERE id=($id) LIMIT 0,1"; 其余和less54是一样的,所以我们将上关payload中的'换成 ) 即可,这里要求次数为14次。 找表名 http://127.0.0.1/sql/L 阅读全文
posted @ 2020-04-09 22:47
zhengna
阅读(221)
评论(0)
推荐(0)
摘要:
从本关开始,我们进入了page-4 Challenges。此系列主要是一个进阶的学习,将前面学到的知识进行更深次的运用。这一关我们主要考察的依旧是字符型注入,但是只能尝试十次。所以需要在尝试的时候进行思考。如何能更少的减少次数。这里的表名和密码等是每十次尝试后就强制进行更换。 本关sql语句是 $s 阅读全文
posted @ 2020-04-09 22:46
zhengna
阅读(285)
评论(0)
推荐(0)
摘要:
和less51是一样的,只是这里的mysql错误不会在前台显示,但是对于stacked injection是一样的利用方式 http://127.0.0.1/sql/Less-53/?sort=1';create table less53 like users--+ 阅读全文
posted @ 2020-04-09 22:45
zhengna
阅读(206)
评论(0)
推荐(0)
摘要:
和less50是一样的,只是这里的mysql错误不会在前台显示,但是对于stacked injection是一样的利用方式 http://127.0.0.1/sql/Less-52/?sort=1;create table less52 like users 阅读全文
posted @ 2020-04-09 22:44
zhengna
阅读(239)
评论(0)
推荐(0)
摘要:
关键代码 $id=$_GET['sort']; $sql="SELECT * FROM users ORDER BY '$id'"; mysqli_multi_query($con1, $sql); 我们此处要进行stacked injection,要注释掉',此处给出payload: http:/ 阅读全文
posted @ 2020-04-09 22:43
zhengna
阅读(211)
评论(0)
推荐(0)
摘要:
从本关开始我们开始进行order by stacked injection! 执行sql语句我们这里使用的是mysqli_multi_query()函数,而之前我们使用的是mysqli_query(),区别在于mysqli_multi_query()可以执行多个sql语句,而mysqli_query 阅读全文
posted @ 2020-04-09 22:42
zhengna
阅读(223)
评论(0)
推荐(0)
摘要:
本关与47关基本类似,区别在于没有错误回显,所以我们可以通过延时注入和导入文件进行注入。 利用延时注入 http://127.0.0.1/sql/Less-49/?sort=1' and (if(ascii(substr((select username from users where id=1) 阅读全文
posted @ 2020-04-09 22:41
zhengna
阅读(336)
评论(0)
推荐(0)
摘要:
本关与less-46的区别在于报错注入不能使用,不进行错误回显,因此其他的方法我们依旧是可以使用的。 1、可以利用sort=rand(true/false)进行判断。 http://127.0.0.1/sql/Less-48/?sort=rand(ascii(left(database(),1))= 阅读全文
posted @ 2020-04-09 22:40
zhengna
阅读(400)
评论(0)
推荐(0)
摘要:
本关的sql语句为 $sql = "SELECT * FROM users ORDER BY '$id'"; 将id变为字符型,因此根据我们上述提到的知识,我们依旧按照注入的位置进行分类。 1、order by后的参数 我们只能使用and来进行报错和延时注入。我们下面给出几个payload示例。 ① 阅读全文
posted @ 2020-04-09 22:39
zhengna
阅读(440)
评论(0)
推荐(0)
摘要:
从本关开始,我们开始学习order by 相关注入的知识。 本关的sql语句为 $id=$_GET['sort']; $sql = "SELECT * FROM users ORDER BY $id"; 尝试?sort=1 desc或者asc,显示结果不同,则表明可以注入。(降序or升序排列) 从上 阅读全文
posted @ 2020-04-09 22:38
zhengna
阅读(468)
评论(0)
推荐(0)
摘要:
此处应介绍order by后的注入以及limit注入,我们结合less-46更容易讲解,(在less46中详细讲解)所以此处可根据less-46了解即可。 阅读全文
posted @ 2020-04-09 22:37
zhengna
阅读(206)
评论(0)
推荐(0)
摘要:
同样的,45关与43关的payload是一样的,只不过45关依旧没有报错信息。 登录 username:admin Password:c');create table less45 like users# 成功创建了新表。 阅读全文
posted @ 2020-04-09 22:36
zhengna
阅读(201)
评论(0)
推荐(0)
摘要:
本关是基于盲注的,这里盲注主要是要没有报错信息,所以要采用盲注。这关与42关的区别就在于没有报错信息,同时,我们使用同样方式的payload: 登录 username:admin Password:a';insert into users(id,username,password) values ( 阅读全文
posted @ 2020-04-09 22:35
zhengna
阅读(367)
评论(0)
推荐(0)
摘要:
本关与42关的原理基本一致,我们还是定位在login.php中的password。关键代码: $username = mysqli_real_escape_string($con1, $_POST["login_user"]); $password = $_POST["login_password" 阅读全文
posted @ 2020-04-09 22:34
zhengna
阅读(271)
评论(0)
推荐(0)
摘要:
pass_change.php关键代码 $username= $_SESSION["username"]; $curr_pass= mysql_real_escape_string($_POST['current_password']); $pass= mysql_real_escape_strin 阅读全文
posted @ 2020-04-09 22:33
zhengna
阅读(384)
评论(0)
推荐(0)
摘要:
此处与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 阅读全文
posted @ 2020-04-09 22:32
zhengna
阅读(263)
评论(0)
推荐(0)
摘要:
本关的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 阅读全文
posted @ 2020-04-09 22:31
zhengna
阅读(475)
评论(0)
推荐(0)
摘要:
和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 阅读全文
posted @ 2020-04-09 22:30
zhengna
阅读(334)
评论(0)
推荐(0)
摘要:
学习了关于stacked injection的相关知识,我们在本关可以得到直接的运用。 在执行select时的sql语句为:SELECT * FROM users WHERE id='$id' LIMIT 0,1 可以直接构造如下的payload: http://127.0.0.1/sql/Less 阅读全文
posted @ 2020-04-09 22:29
zhengna
阅读(691)
评论(0)
推荐(0)
摘要:
Stacked injections:堆叠注入。从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一条语句结尾加 ; 表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做stacked injection。 0 阅读全文
posted @ 2020-04-09 22:28
zhengna
阅读(421)
评论(0)
推荐(0)
摘要:
关键代码 $uname1=$_POST['uname']; $passwd1=$_POST['passwd']; $uname = mysql_real_escape_string($uname1); $passwd= mysql_real_escape_string($passwd1); mysq 阅读全文
posted @ 2020-04-09 22:27
zhengna
阅读(306)
评论(0)
推荐(0)
摘要:
关键代码 function check_quotes($string) { $string= mysql_real_escape_string($string); return $string; } $id=check_quotes($_GET['id']); mysql_query("SET NA 阅读全文
posted @ 2020-04-09 22:26
zhengna
阅读(2667)
评论(0)
推荐(0)
摘要:
35关和33关是大致的一样的,唯一的区别在于sql语句的不同。 function check_addslashes($string) { $string = addslashes($string); return $string; } $id=check_addslashes($_GET['id'] 阅读全文
posted @ 2020-04-09 22:25
zhengna
阅读(357)
评论(0)
推荐(0)
摘要:
关键代码 $uname1=$_POST['uname']; $passwd1=$_POST['passwd']; $uname = addslashes($uname1); $passwd= addslashes($passwd1); mysql_query("SET NAMES gbk"); @$ 阅读全文
posted @ 2020-04-09 22:24
zhengna
阅读(406)
评论(0)
推荐(0)
摘要:
关键代码 function check_addslashes($string) { $string= addslashes($string); return $string; } $id=check_addslashes($_GET['id']); mysql_query("SET NAMES gb 阅读全文
posted @ 2020-04-09 22:23
zhengna
阅读(468)
评论(0)
推荐(0)
摘要:
关键代码 function check_addslashes($string) { $string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string); //escape any backslash $string = preg 阅读全文
posted @ 2020-04-09 22:22
zhengna
阅读(933)
评论(0)
推荐(1)
摘要:
Less-32,33,34,35,36,37六关全部是针对'和\的过滤,所以我们放在一起来进行讨论。 我们在此介绍一下宽字节注入的原理和基本用法。 原理:mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围)。我们在过 阅读全文
posted @ 2020-04-09 22:21
zhengna
阅读(297)
评论(0)
推荐(0)
摘要:
Less-31与前面两关的方式是一样的,我们直接看到less-31的sql语句: $id=$_GET['id']; $id = '"' .$id. '"'; $sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1"; 所以payload为: http:/ 阅读全文
posted @ 2020-04-09 22:20
zhengna
阅读(537)
评论(0)
推荐(0)
摘要:
Less-30与less-29原理是一致的,区别仅仅是将id的'变为了",我们可以看到less-30的sql语句为: $id=$_GET['id']; $id = '"' .$id. '"'; $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; 所以 阅读全文
posted @ 2020-04-09 22:19
zhengna
阅读(379)
评论(0)
推荐(0)
摘要:
查看源码SQL如下 $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; 尝试进行注入 http://127.0.0.1/sql/Less-29/login.php?id=-1' union select 1,database(),3--+ 系统检 阅读全文
posted @ 2020-04-09 22:18
zhengna
阅读(755)
评论(0)
推荐(0)
摘要:
首先介绍一下29,30,31这三关的基本情况: 服务器端有两个部分:第一部分为tomcat为引擎的jsp型服务器,第二部分为apache为引擎的php服务器,真正提供web服务的是php服务器。工作流程为:client访问服务器,能直接访问到tomcat服务器,然后tomcat服务器再向apache 阅读全文
posted @ 2020-04-09 22:17
zhengna
阅读(269)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { //$id= preg_replace('/[\/\*]/',"", $id); //strip out /* //$id= preg_replace('/[--]/',"", $id); //Strip out --. //$id= p 阅读全文
posted @ 2020-04-09 22:16
zhengna
阅读(359)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { $id= preg_replace('/[\/\*]/',"", $id); //strip out /* $id= preg_replace('/[--]/',"", $id); //Strip out --. $id= preg_re 阅读全文
posted @ 2020-04-09 22:15
zhengna
阅读(725)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { $id= preg_replace('/[\/\*]/',"", $id); //strip out /* $id= preg_replace('/[--]/',"", $id); //Strip out --. $id= preg_re 阅读全文
posted @ 2020-04-09 22:14
zhengna
阅读(339)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { $id= preg_replace('/[\/\*]/',"", $id); //strip out /* $id= preg_replace('/[--]/',"", $id); //Strip out --. $id= preg_re 阅读全文
posted @ 2020-04-09 22:13
zhengna
阅读(850)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { $id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive) $id= preg_replace('/and/i',"", $id); //Strip ou 阅读全文
posted @ 2020-04-09 22:12
zhengna
阅读(1476)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { $id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive) $id= preg_replace('/and/i',"", $id); //Strip ou 阅读全文
posted @ 2020-04-09 22:11
zhengna
阅读(950)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { $id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive) $id= preg_replace('/AND/i',"", $id); //Strip ou 阅读全文
posted @ 2020-04-09 22:10
zhengna
阅读(499)
评论(0)
推荐(0)
摘要:
关键代码 function blacklist($id) { $id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive) $id= preg_replace('/AND/i',"", $id); //Strip ou 阅读全文
posted @ 2020-04-09 22:09
zhengna
阅读(915)
评论(0)
推荐(0)
摘要:
本关为二次排序注入的示范例。二次排序注入也成为存储型的注入,就是将可能导致sql注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以触发sql注入。二次排序注入思路: 1. 黑客通过构造数据的形式,在浏览器或者其他软件中提交HTTP数据报文请求到服务端进行处理,提交的数据报文请求中可能 阅读全文
posted @ 2020-04-09 22:08
zhengna
阅读(609)
评论(0)
推荐(0)
摘要:
关键源码如下 $reg = "/#/"; $reg1 = "/--/"; $replace = ""; $id = preg_replace($reg, $replace, $id); $id = preg_replace($reg1, $replace, $id); $sql="SELECT * 阅读全文
posted @ 2020-04-09 22:07
zhengna
阅读(674)
评论(1)
推荐(0)
摘要:
本关和less20、less21是一致的,我们可以从源代码中看到这里对uname进行了"uname"的处理 $cookee = $_COOKIE['uname']; $cookee = base64_decode($cookee); $cookee1 = '"'. $cookee. '"'; $sq 阅读全文
posted @ 2020-04-09 22:06
zhengna
阅读(431)
评论(0)
推荐(0)
摘要:
本关对cookie进行了base64的处理,其他的处理流程和less20是一样的。 关键代码 $cookee = $_COOKIE['uname']; $cookee = base64_decode($cookee); $sql="SELECT * FROM users WHERE username 阅读全文
posted @ 2020-04-09 22:05
zhengna
阅读(410)
评论(0)
推荐(0)
摘要:
从源代码中我们可以看到cookie从username中获得值后,当再次刷新时,会从cookie中读取username,然后进行查询。 关键代码 $cookee = $_COOKIE['uname']; $sql="SELECT * FROM users WHERE username='$cookee 阅读全文
posted @ 2020-04-09 22:04
zhengna
阅读(526)
评论(0)
推荐(0)
摘要:
从源代码中我们可以看到我们获取到的是HTTP_REFERER $uagent = $_SERVER['HTTP_REFERER']; $insert="INSERT INTO `security`.`referers` (`referer`, `ip_address`) VALUES ('$uage 阅读全文
posted @ 2020-04-09 22:03
zhengna
阅读(384)
评论(0)
推荐(0)
摘要:
本关我们这里从源代码直接了解到 $uname = check_input($_POST['uname']); $passwd = check_input($_POST['passwd']); 对uname和passwd进行了check_input()函数的处理,所以我们在输入uname和passwd 阅读全文
posted @ 2020-04-09 22:02
zhengna
阅读(517)
评论(0)
推荐(0)
摘要:
在利用抓包工具进行抓包的时候,我们能看到很多的项,下面详细讲解每一项。 HTTP头部详解 1、 Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。 2、 Accept-Charset: 浏览器申明自己接收的字 阅读全文
posted @ 2020-04-09 22:01
zhengna
阅读(245)
评论(0)
推荐(0)
摘要:
本关我们可以看到是一个修改密码的过程,利用的是update语句,与在用select时是一样的,我们仅需要将原先的闭合,构造自己的payload。 尝试报错 Username:admin Password:1' You have an error in your SQL syntax; check t 阅读全文
posted @ 2020-04-09 22:00
zhengna
阅读(2231)
评论(0)
推荐(0)
摘要:
在对数据进行处理上,我们经常用到的是增删查改。查就是我们上述总用到的select,这里就介绍了。接下来我们讲解一下mysql 的增删改。 (1)增加 insert into table_name (column1, column2, column3, ...) values (value1, val 阅读全文
posted @ 2020-04-09 21:59
zhengna
阅读(290)
评论(0)
推荐(0)
摘要:
本关没有错误提示,那么我们只能靠猜测进行注入。这里我直接从源代码中看到了sql语句 $uname=$_POST['uname']; $passwd=$_POST['passwd']; $uname='"'.$uname.'"'; $passwd='"'.$passwd.'"'; @$sql="SEL 阅读全文
posted @ 2020-04-09 21:58
zhengna
阅读(458)
评论(0)
推荐(0)
摘要:
本关没有错误提示,那么我们只能靠猜测进行注入。这里我直接从源代码中看到了sql语句 @$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1"; 那这里对i 阅读全文
posted @ 2020-04-09 21:57
zhengna
阅读(504)
评论(0)
推荐(0)
摘要:
本关我们直接进行测试,输入username:admin" Pasword:(随意) 可以看到报错了,那么我们知道了id进行了 " 的操作。 这里和less13一样,主要是利用盲注。可以使用布尔注入或者报错注入。 布尔注入,举例列一下payload: uname=admin" and left(dat 阅读全文
posted @ 2020-04-09 21:56
zhengna
阅读(1050)
评论(0)
推荐(1)
摘要:
本关我们输入username:admin' Password: (随便输) 进行测试 可以看到报错了,错误为: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server v 阅读全文
posted @ 2020-04-09 21:55
zhengna
阅读(465)
评论(0)
推荐(0)
摘要:
本关和less11是类似的,只是在id 的参数的处理上有一定的不同 当输入username:admin" Password:(随便) 报错后的结果为: You have an error in your SQL syntax; check the manual that corresponds to 阅读全文
posted @ 2020-04-09 21:54
zhengna
阅读(491)
评论(0)
推荐(0)
摘要:
从这一关开始我们开始进入到post注入的世界了,什么是post呢?就是数据以表单的形式从客户端提交到服务器端,例如我们在登录过程中,输入用户名和密码,用户名和密码以表单的形式提交,提交到服务器后服务器再进行验证。这就是一次post的过程的。 例如我们在less11中我们输入正确的用户名和密码后,显示 阅读全文
posted @ 2020-04-09 21:53
zhengna
阅读(506)
评论(0)
推荐(0)
摘要:
本关我们从标题就可以看到 “时间盲注-双引号”,所以很明显这关要我们利用延时注入进行,同时id参数进行的是 " 的处理。和less9的区别就在于单引号(')变成了("),我们这里给出一个payload示例,其他的请参考less-9 猜测数据库: http://127.0.0.1/sql/Less-1 阅读全文
posted @ 2020-04-09 21:52
zhengna
阅读(360)
评论(0)
推荐(0)
摘要:
本关我们从标题就可以看到 “时间盲注-单引号”,所以很明显这关要我们利用延时注入进行,同时id参数进行的是 ' 的处理。这里我们大致的将延时注入的方法演示一次。 延时注入是利用sleep()或benchmark()等函数让MySQL的执行时间变长。延时注入多与if(expr1,expr2,expr3 阅读全文
posted @ 2020-04-09 21:51
zhengna
阅读(1100)
评论(0)
推荐(0)
摘要:
查看源代码如下 $id=$_GET['id']; $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; $result=mysql_query($sql); $row = mysql_fetch_array($result); if($row) { 阅读全文
posted @ 2020-04-09 21:50
zhengna
阅读(995)
评论(0)
推荐(0)
摘要:
本关的标题是dump into outfile,意思是本关我们利用文件导入的方式进行注入。而在Background-3中我们已经学习了如何利用dump into file。 这里首先还是回到源代码中去。重点放在对id参数的处理和sql语句上,从源代码中可以看到 $id=$_GET['id']; $s 阅读全文
posted @ 2020-04-09 21:49
zhengna
阅读(1260)
评论(1)
推荐(0)
摘要:
1、load_file()导出文件 Load_file(file_name):读取文件并返回该文件的内容作为一个字符串。 使用条件: A、必须有权限读取并且文件必须完全可读 and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明具有读写权限and 阅读全文
posted @ 2020-04-09 21:48
zhengna
阅读(471)
评论(0)
推荐(1)
摘要:
Less6与Less5的区别在于Less6在id参数传到服务器时,对id参数进行了处理。这里可以从源代码中可以看到。 $id=$_GET['id']; $id = '"'.$id.'"'; //套了双引号 $sql="SELECT * FROM users WHERE id=$id LIMIT 0, 阅读全文
posted @ 2020-04-09 21:47
zhengna
阅读(1680)
评论(0)
推荐(2)
摘要:
查看后台源码,我们发现,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了。 $id=$_GET['id']; $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; $result=mysql_query($sql 阅读全文
posted @ 2020-04-09 21:46
zhengna
阅读(1853)
评论(0)
推荐(0)
摘要:
0x01 概述 我对于通过MySQL错误提取数据的新技术非常感兴趣,而本文中要介绍的就是这样一种技术。当我考察MySQL的整数处理方式的时候,突然对如何使其发生溢出产生了浓厚的兴趣。下面,我们来看看MySQL是如何存储整数的。 MySQL支持SQL标准整数类型INTEGER(或INT)和SMALLI 阅读全文
posted @ 2020-04-09 21:45
zhengna
阅读(481)
评论(0)
推荐(0)
摘要:
何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。盲注分为三类 •基于布尔的SQL盲注 •基于时间的SQL盲注 •基于报错的SQL盲注 1.基于布尔SQL盲注 构造逻辑判断 (1)截取字符串判断 阅读全文
posted @ 2020-04-09 21:43
zhengna
阅读(578)
评论(0)
推荐(0)
摘要:
打开页面后提示“请输入参数id,并为它赋一个数字值”。 1、寻找注入点 输入?id=1 正常;输入?id=1" 报错,说明存在sql注入漏洞。 查看后台源码发现如下查询语句,与Less-3基于错误的GET单引号变形字符型注入区别在于,构建payload新增 ")双引号右括号 而不是 ‘)单引号右括号 阅读全文
posted @ 2020-04-09 21:42
zhengna
阅读(515)
评论(0)
推荐(0)
摘要:
打开页面后提示“请输入参数id,并为它赋一个数字值”。 1、寻找注入点 输入?id=1 正常;输入?id=1' 报错,说明存在sql注入漏洞。 查看后台源码发现如下查询语句,与Less-2 基于错误的GET整型注入区别在于,构建payload新增')单引号右括号,)右括号表示变形! SELECT * 阅读全文
posted @ 2020-04-09 21:41
zhengna
阅读(472)
评论(0)
推荐(0)
摘要:
打开页面后,与Less-1一样,提示“请输入参数id,并为它赋一个数字值”。 1、寻找注入点 输入?id=1 正常;输入?id=1' 报错,说明存在sql注入漏洞。 查看后台源码发现如下查询语句,说明存在整型注入漏洞。与Less-1 单引号字符型注入 区别在于,构建payload时去掉'单引号。 S 阅读全文
posted @ 2020-04-09 21:40
zhengna
阅读(522)
评论(0)
推荐(0)
摘要:
打开页面后提示“请输入参数id,并为它赋一个数字值”。 1、寻找注入点 输入?id=1 正常;输入?id=1' 报错,说明存在sql注入漏洞。 尝试在URL后添加?id=1回车,页面响应“Your Login name:Dumb Your Password:Dumb”。 尝试在URL后添加?id=1 阅读全文
posted @ 2020-04-09 21:39
zhengna
阅读(949)
评论(0)
推荐(0)
摘要:
我是刚刚开始通过sqli-labs学习mysql注入,每一关用到的知识点对于我来说基本上都是新的知识。这些背景知识以及闯关过程都是参考网友的,重新汇总主要是为了加深理解。其中绝大多数内容都是参考的lcamry的《MYSQL注入天书》,在这里对lcamry表示深深的感谢。附上作者的博客地址:https 阅读全文
posted @ 2020-04-09 21:38
zhengna
阅读(674)
评论(0)
推荐(0)
浙公网安备 33010602011771号