0%

二分

2024-08-28 08:02By
mecal
日志审计流量分析日志审查

Problem: [闽盾杯 2021]日志分析

[[toc]]

思路

  • 解题大致思路
    提取出日志中的password字段,url解码
    NSSIMAGE
    分析一下这个sql注入代码。
  • 最外层
    ORD(*)>64,判断其内部查询的字符的ascii大小.
  • 次层
    MID(String,a,b),从String中第a个位置开始,提取第b个字符。
  • 里层
    SELECT IFNULL(CAST(password AS NCHAR),0x20) FROM security.users ORDER BY id LIMIT 0,1 ,取出password

所以我们的目标就是根据最外层的ascii值判断。
这是一个典型的二分搜索,当字符比64大,则增加比较值的大小,当字符比64小,则减少比较值的大小。

以第一位字符为例:
NSSIMAGE
字符ascii值范围变化过程:
(64,126]->(96,126]->(96,112]->(104,112]->(108,112]->(108,110]->(108,109]
最后一步,按照二分的思路,如果>109为true,那么会再判断一次>110。所以根据最后一次判断,缩减的范围应该为(108,109]

以此类推,查询所有ascii值的字符,即可得到flag。

还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论