记一次渗透测试自己的jsp项目

前两天写了个比较简单的login登陆页面,输入username和password,通过输入的username查询数据库中的password和框中的值进行对比验证
记一次渗透测试自己的jsp项目

测试

先输入一对值,admin,123456,弹出信息
记一次渗透测试自己的jsp项目
果然,意料之内用户名或密码错误,但是我们从这次测试能看出一点,这个数据传输的方式是post,

注入测试

先试一下SQL注入
记一次渗透测试自己的jsp项目
还是没用,而且什么信息都没给,估计它本身并不返回任何值,只是进行判断输出正确还是错误
记一次渗透测试自己的jsp项目

联合注入

既然根本不返回任何值,想爆库或者爆表基本上也是不可能的了,只能想办法绕过验证。绕过验证基本思路是这样,如果在数据库中执行select 1语句,输出的值肯定是1,那我就想办法让我不管输入什么username的值,都查不到对应的password,但是通过union select 1使查出来的password值就是1
记一次渗透测试自己的jsp项目
这语句很简单就不说了,也可以不是1,是任何值都行,只要password与其对应
记一次渗透测试自己的jsp项目

总结

最终注入成功不是通过拿到数据库中的内容,而是绕过了验证,如果想拿到数据库的内容可以通过延时注入,通过先猜数据库名长度,再猜数据库名,猜表名长度,再猜表名,…总之很复杂,就不演示了

 最后忠告各位黑阔大牛,不要在危险的边缘试探,及时收手
记一次渗透测试自己的jsp项目