前两天写了个比较简单的 login 登陆页面,输入 username 和 password,通过输入的 username 查询数据库中的 password 和框中的值进行对比验证
测试展开目录
先输入一对值,admin,123456,弹出信息果然,意料之内用户名或密码错误,但是我们从这次测试能看出一点,这个数据传输的方式是 post,
注入测试展开目录
先试一下 SQL 注入还是没用,而且什么信息都没给,估计它本身并不返回任何值,只是进行判断输出正确还是错误
联合注入展开目录
既然根本不返回任何值,想爆库或者爆表基本上也是不可能的了,只能想办法绕过验证。绕过验证基本思路是这样,如果在数据库中执行 select 1 语句,输出的值肯定是 1,那我就想办法让我不管输入什么 username 的值,都查不到对应的 password,但是通过 union select 1 使查出来的 password 值就是 1这语句很简单就不说了,也可以不是 1,是任何值都行,只要 password 与其对应
总结展开目录
最终注入成功不是通过拿到数据库中的内容,而是绕过了验证,如果想拿到数据库的内容可以通过延时注入,通过先猜数据库名长度,再猜数据库名,猜表名长度,再猜表名,...... 总之很复杂,就不演示了
最后忠告各位黑阔大牛,不要在危险的边缘试探,及时收手
看起来很简单的样子,然而实际操作,可能就呵呵了
<script>alert(1)</script>
兄弟,想 XSS 我?不存在的