我正在做一个关于webapp安全性和漏洞的学校项目,为此我创建了一个非常简单的网站,带有登录和搜索栏.
现在,我已经故意使登录静默,而搜索栏显示SQL注入的输出.因此,出于演示目的,我想对登录进行基于时间的完全盲目SQL注入攻击...但我有点卡住了.
在基于时间的情况下,我不知道如何枚举表中登录查询的列数:
SELECT * FROM customer WHERE cMAIL='' AND cPWD='';
我不能做ORDER BY n;#,因为当出现问题时我绝对没有错误输出.我能得到任何指示的唯一方法是通过SLEEP()或BENCHMARK().
但我不能将ORDER BY放入SELECT IF()语句中.那么如何找出存在多少列呢?(它使我的工会不可能).
谢谢!
编辑:可能值得一提的是,该网站的目的是非常不安全(不使用mysqli,只是mysql).因为它只是为了演示