这篇文章呢,就把之后的所有题目给解决掉
拿到题目就一个输入框和输入之后的删除按钮,这种一看就晓得要抓包解决
抓包后发信是get请求,还上传了一个参数63,应该就是被删除信息的编码,我们就可以利用这里构造payload,因为没有回显位,所以还是报错注入
删除2
嘿,他要发两次包,发完直接执行了,没有发生任何报错信息,在上网查询的途中,我们了解到因为是get请求所以构造的语句会体现在url中,所以我们传输的要经过url编码,虽然bp自带编码功能,但是很遗憾社区版没办法体验这个
在网上随机找一个在线编码工具,编码之后重新发送
注意要将http给隔出来,因为他不包含在传参里,注意and前面也需要%20(空格)这里没编码出来
发包后,拉到最底下,成功获取到数据库信息
有时,后台开发人员为了验证客户端的头部信息(如常用的 Cookie 验证),或者通过http头部信息获取客户端的一些信息,如useragent、accept字段
Web应用可能会对客户端的http header信息进行获取并使用SQL语句进行处理,如果此时没有足够的安全考虑,则可能会导致基于HTTP Header的SQL注入漏洞
也就是在http请求头注入,但是我还是找不到注入点在哪儿,他直接告诉我登录失败,也没有其他回显信息和报错信息,构造语句也不行,也不能回显信息,看了一下提示是要我登录进去,还给了账号和密码
但是我想尝试一下爆破,还好密码简单,但是一般我肯定想不到要进行登录,302重定向是第一次遇见,登录吧
登录成功,密码应该做了编码处理,现在就可以进行注入了哦
查看登录信息,可以明显的看到网页获取了ip地址客户端浏览器信息,还有能接受的信息类型
从已知的信息来讲,可以对User-Agent字段进行注入,输入a'测试一下,成功报错,在查资料的时候有位大佬说过,还要观察报错信息(可以看到这里所用的数据库是mysql)
因为出现报错内容,我们就继续谨慎查看一下报错的信息,可以看到两个参数之间也是由逗号和单引号分隔的,跟之前的insert注入一样,所以这里要用到的报错语句是
a' or updatexml(1,concat(0x7e,database()),4) or'
直接将User-Agent原语句替换掉就行,成功回显信息,那接下来就不进行演示了,在获取的信息中可知,应该还有其他的注入点,尝试寻找其他注入点
成功回显报错信息,且也是运用的逗号单引号分隔
所以注入语句没有变化
注入成功
其实最早就想写这个的,因为这个直接有注入点诶
直接在admin处注入,而且是字符型注入就可以更改注入语句了,其实先前的也可以,这里复习一下
--+其实也是一个注释符,因为#在这里不能被直接识别,要进行编码%23才行,这里直接用--代替
' or updatexml(1,concat(0x7e,database()),4)--+
注入成功