报错注入——HTTP头型
报错注入——HTTP头型
0.前言
由于后台开发人员有时为了能够验证客户端登录的相关信息(比如网页的Cookie值验证)或者通过HTTP头用相关函数(SERVER)获取客户端的一些信息(比如QQ的登录定位等)
由于HTTP所使用的函数语句存在变量传送至数据库当中并使用了SQL语句进行处理,从而导致了SQL注入有机可乘
1 |
|
1.查看界面
登录界面与提示:
登录出现错误画面:
2.正确登录
查看提示显示,给了我们登录的账号和密码,登入:
3.报文分析3
在上面的内容中,我们可以看见,当登录成功后,反馈出了我们的ip地址、使用浏览器类型和相关的端口等信息,这明显涉及到了之前在请求注入类型中的http头类型,在反馈的浏览器类型中加入单引号查看是否存在注入点:
1 |
|
通过反馈的内容提示可以看见(have an error in your SQL syntax),这说明存在SQL注入的漏洞,由于没有回显位置,所以尝试采用报错注入。
4.使用updatexml函数获取数据库名
1 |
|
注入方式依旧是updatexml老方法
5.获取数据库表名
1 |
|
经典不够长,继续使用substr,其实limit也能用(但是我懒得重新写语句了)
1 |
|
6.获取表
1 |
|
1 |
|
7.获取表中的内容
1 |
|
1 |
|
8.解码
“MD5的码,请阅读SQL——数字型”
9.总结
对于报错注入的三种类型演示就结束 了,接下来将是布尔类型和时间类型的注入了,在报错注入的学习中,还是有疑问的,比如在HTTP头中,为什么注入语句在内容前面能够注入成功,在内容的后面反而提示数据类型错误,还没想明白,很多博客上只说能注入就没了,说和前面的报错注入一样,我觉得是肤浅的,对于不同的类型而言,肯定有新的东西和应该注意的地方
以及应该有注意到,在前面的update类型中,用or的注入不成功,用and却成功了,这在逻辑上我无法理解,但是总归是试出来了,看来还有很长的路要去走呀!
报错注入——HTTP头型
https://one-null-pointer.github.io/2022/08/15/SQL注入——HTTP头型/