一个拿站的过程,依赖js的危机

2010, February 7, 10:25 AM. 漏洞分析
Submitted by admin

一个拿站的过程,依赖js的危机
转载请注明 by 3x
闲来无事,拿一个站
大小: 141.54 K
尺寸: 500 x 202
浏览: 34 次
点击打开新窗口浏览全图

一个购物站。。。这种站一般在找回密码这个地方有注入,看看
大小: 19.73 K
尺寸: 500 x 223
浏览: 30 次
点击打开新窗口浏览全图大小: 24.48 K
尺寸: 500 x 244
浏览: 45 次
点击打开新窗口浏览全图大小: 16.05 K
尺寸: 421 x 192
浏览: 64 次
点击打开新窗口浏览全图大小: 65.65 K
尺寸: 500 x 327
浏览: 34 次
点击打开新窗口浏览全图

果然有注入,拿穿山甲开搞,搞了一会儿,奇怪,怎么猜不到表名。。。。。
手工去试试看
找回密码输入 ‘ or (select count(*) from admin)>=0 and ‘1’=’1
得到大小: 22.25 K
尺寸: 452 x 212
浏览: 38 次
点击打开新窗口浏览全图

原来是防注入…..分析了下,只要提交参数中出现了select(不分大小写),就返回这个界面,试了一些常用的编码转换,也是不行。

后来发现这个是网趣那一类的的购物系统,我下了套源码,发现原版网趣没有防注入,目标站竟然加了,哎继续看源码,希望这个防注入没有过滤cookies,不然就挂了,找呀找呀,终于找到个文件listjp.asp
代码如下 乍一看,过滤了啊,判断id是不是数字型的,还做了两次判断呢,呵呵….
不过,毛主席说过,一切敌人都是纸老虎,很幸运,这个过滤也是纸老虎(如果觉得自己能绕过的就不用回复了,嘎嘎)

分析开始:

01 <%if IsNumeric(request.QueryString("id"))=False then
02 response.write("<script>alert(""非法访问!"");location.href=""index.asp"";</script>")
03 response.end
04 end if
05 dim id
06 id=request.QueryString("id")
07 if not isinteger(id) then
08 response.write"<script>alert(""非法访问!"");location.href=""index.asp"";</script>"
09 end if%>
10  <%
11 set rs=server.createobject("adodb.recordset")
12 rs.open "select * from wq_jingpin where bookid="&request("id"),conn,1,3
13 if rs.recordcount=0 then 
14 %>

 

第一个用isNumberRic过滤,但取的值是queryString取的,我做了段小代码测试了下,
代码
<%
response.write(IsNumeric(request.queryString("id")))
%>
本地保存为 inum.asp
提交 inum.asp?id= 
大小: 5.93 K
尺寸: 339 x 112
浏览: 50 次
点击打开新窗口浏览全图
也就是说我们只要不出现id,他默认是真的
第二个用isinteger过滤 好像是自定义函数,也没去翻
各位看官注意看
if not isinteger(id) then
response.write"<script>alert(""非法访问!"");location.href=""index.asp"";</script>"
end if%>
没有response.end
我们只要把浏览器安全性设置到最高,就可以禁用js了
直接绕过

接下来就是构造cookies注入了,就不再重复
这是爆出的密码
大小: 46.78 K
尺寸: 500 x 298
浏览: 45 次
点击打开新窗口浏览全图
Tags: 拿站

« 上一篇 | 下一篇 »

Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):