手控制不住,点提示;
先登录一下,再说!!!
看这个界面一共有两个操作:登录和退出!!!!
咱们先用BURP分别抓下包再说!!!
当我觉得应该是登录操作,因为回显信息,显示我的USER AGENT和 HTTP ACCEPT都被记录,证明这些信息,已被成功传入!!!!下面,我就被打脸了!!!
首先,我们试着在 User-agent后加入单引号,进行查看回显!!
但是回显,有问题啊,回显是302,重定向!!!看大佬的WP,看注入过程发生在退出的过程中,但是记录HTTP头信息,不是在登录的过程中会记录HTTP头部信息吗?我的理解可能有问题!!!所有咱们看源代码吧!!!
首先查看sqli_header_login.php:
该代码对登录的用户名和密码进行传递,并转义,防止SQL注入,并根据用户名和密码信息生成cookie,供其他页面判断,接着重定向到sqli_header.php界面,这里我们看到这个php界面并没有对HTTP头信息进行收集和处理,所以HTTP头注入,并不发生在这个页面当中。
接着我们查看sqli_header.php的源代码!!!
未对记录的HTTP头信息,进行转义,存在SQL注入漏洞!!!
根据对源代码的分析,只有退出是才会触发sqli_header.php文档,我们这时,就可以使用BURP进行抓包,并进行HTTP头注入!!!
我们把这个报文发送到REPEATER,尝试哪个HTTP头字段存在注入点!!!!
Host没有报错!!!
User-agent报错!!!
通过报错语句 ‘ or updatexml(1,concat(0x7e,database()),0) or’,成功爆出数据库!!!
accept报错!!!
Accept-Language没有报错!!!!
这里的COOKIE中的uname和pw字段后面,实际上也是可以报错的!!!!也是存在注入点的!!1
BINGO,完成!!!!
来源:freebuf.com 2021-07-26 08:13:10 by: 知非知非知非
请登录后发表评论
注册