• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    中关村在线网站order by语句的盲注思路及修复方案(图)

    发布者: 忻慕2619 | 发布时间: 2025-6-27 15:50| 查看数: 70| 评论数: 0|帖子模式

    基于order by内容的盲注
    详细说明:
    对http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=zj_vote+desc 做安全检测。
    尝试数值型注入未果。
    不过,看到zj_vote+desc,想到这里也许能利用。
    用工具扫它没发现注入。因为mysql的union前不能带order by。
    但是order by里的内容是不是就没法注入了?
    我不死心啊。
    做了一些尝试,发现order by是可以盲注的。
    这种方式依赖数据库结果中必须存在一个已知存在不一样数值的列。
    不过,既然程序里order by那个字段了,那么那个字段理论上肯定有多种值的。比如本例中的zj_vote字段.

    漏洞证明:

    看排序。236和239数值相差3,我构造一个abs(zj_vote-237-(expr)) asc.
    (expr)为假时,(239-237-0)=2,(236-237-0)=1,236排前面,
    (expr)为真时,(239-237-1)=1,(236-237-1)=2,239排前面,
    你也许会说,你这个236和239相差是3,当然简单了。如果相差2呢?
    比如236和238怎么办?
    不卖关子了,直接告诉你吧,他不是相差2么,你可以用abs(zj_vote-236-(expr)*3)啊

    http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=abs(zj_vote-237-(length(user())>20))+asc




    http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=abs(zj_vote-237-(length(user())=20))+asc




    修复方案:

    做一个允许的排序方式组合的数组,排序方式传排序方式的数组下标就可以了。
    想直接传字段也可以,检查一下那个排序方式是否在数组里,不是就用默认排序方式。也就安全了。

    作者 小雨
    来源:https://www.jb51.net/hack/45212.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表