Pikachu 漏洞练习平台Sql Injection Http-header型注入通关指南pika~pika~

简单介绍一下http-header:
1.Accept
作用: 浏览器端可以接受的媒体类型, 例如: Accept: text/html 代表浏览器可以接受服务器回发的类型为 text/html 也就是我们常说的html文档,如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)
通配符 * 代表任意类型 例如 Accept: / 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)
2.Accept-Encoding:
作用: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate),(注意:这不是只字符编码); 例如: Accept-Encoding: zh-CN,zh;q=0.8
3.Accept-Language
作用: 浏览器申明自己接收的语言。 语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等; 例如: Accept-Language: en-us。
4.Connection
Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。
5.Host(发送请求时,该报头域是必需的)
作用: 请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的 例如: 我们在浏览器中输入:http://www.hzau.edu.cn 浏览器发送的请求消息中,就会包含Host请求报头域,如下:Host:www.hzau.edu.cn 此处使用缺省端口号80,若指定了端口号,则变成:Host:指定端口号
6.Referer
当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站
7.User-Agent
作用:告诉 HTTP 服务器, 客户端使用的操作系统和浏览器的名称和版本。我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从 User-Agent 这个请求报头域中获取到这些信息User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
在SQL注入中的http-header注入通常指的是User-Agent注入,因为只有这一个参数可以任意修改
也可以用burp,不过我更钟情postman

首先随便填写登录一下,按F12拿到这三个payload

设置完成,准备冻手

试了一通发现都没有回显,实在没办法点一下提示,原来要先登录的啊=-=

传了一个单引号,报了一个之前没见过的错误,“/**/”是MySQL数据库的注释语句,试试拼接一个“*/”

又能正常显示了(挠头),继续尝试

拼接单引号,报错

拼接双引号,正常,大概有点思路了

正常显示了,但是不管我输入什么都是直接显示出来,我要用什么办法才能让他把我写的sql语句当作正常的sql语句去执行呢
可恶,试了一通,还是回到原点,可能是受之前学习过的课程的影响,我的想法是闭合前面和后面的sql语句,让数据库执行整条语句的时候把脏数据当成正常sql语句执行最后把数据带出来显示在User-Agent上,于是我去查了攻略,
“Accept也可进行注入,中间过程和insert/update注入一样,只是注入参数修改为User-Agent,在此不再赘述
直接查询字段username的内容admin,pikachu,test
’ or updatexml(1,concat(0x7e,(select group_concat(username) from users)),1)or’
直接查询字段passowrd的内容,因为字符数量比较多,所以直接用limit函数读取
’ or updatexml(1,concat(0x7e,(select password from users limit 0,1)),1)or’
对应账号和MD5加密的密码:
admin:e10adc3949ba59abbe56e057f20f883e(123456)
pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)
test:e99a18c428cb38d5f260853678922e03(abc123)”

总结
没什么好总结的,我是个傻逼
还是总结一下吧,updataxml()、extractvalue() yyds!!