文章预览
hw期间某晚上10点,某知名小朋友审计了一套bc源码,有sql注入,注入的位置比较刁钻,sqlmap无法识别,不能取证 注入场景 pay.php?id=pay`+/*_*/ where + false 注入error pay.php?id=pay`+/*_*/ where + false # 注入正常 sqlmap无法识别 注入位置比较刁钻,小朋友说得保留 pay`+/*_*/ where + false 字段才可控, 在网上搜了一圈,没有找到基于union的自定义查询,于是下了些功夫,研究了sqlmap的union注入流程 union注入流程 union联合查询,用于合并左右两侧select语句的结果,得要求两侧select的列数相同,两侧select列数不同发生error,那注入就失败;因此
union注入必须得先进行order by的判断确定列数,后续才能拼接子查询测试。 所以,站点union注入失败的原因在于order by测试没命中 sqlmap测试union注入的文件在data\xml\payloads\union_query.xml
根据发包提示信息和order by相关的是"Generic UNION query"
………………………………