评论编辑commedit.asp
comm_ID未过滤
相关代码如下:
152行左右
.....
comm_ID=Request.Form("comm_ID")
comm_Author=Request.Form("comm_Author")
.....
Conn.ExeCute("update blog_Comment Set log_ID=""&log_ID&"",comm_Content=""&comm_Content&"",comm_DisSM="&comm_DisSM&",comm_DisUBB="&comm_DisUBB&",comm_DisIMG="&comm_DisIMG&",comm_AutoURL="&comm_AutoURL&",comm_Hidden="&comm_Hidden&",comm_Highlight="&comm_Highlight&" where comm_ID="&comm_ID&"")
commd_id是从表单接受的,确切的说是个隐藏变量,但是是直接接受的,呵呵,尽管放在update语句里,依然是可以利用的,利用方法就是经典的1=1,1=2,刺猬给出利用工具啦,呵呵 Thx 刺猬...... :VB代码,高手勿笑!
相关的漏洞文件有
网络收藏夹colledit.asp
下载编辑downledit.asp
修补就是comm_ID=cint(Request.Form("comm_ID"))
然后是提权漏洞,主要是sex变量没有处理好
性别提权member.asp
好象是50多行吧!
......
Conn.ExeCute("update blog_Member SET mem_Sex="&CheckStr(Request.Form("mem_Sex"))&",mem_Email=""&CheckStr(Request.Form("mem_Email"))&"",mem_hideEmail="&hideEmail&",mem_HomePage=""&CheckStr(Request.Form("mem_HomePage"))&"",mem_Intro=""&CheckStr(Request.Form("mem_Intro"))&"""&SQL_Add&" where mem_ID="&mem_ID&"")
......
很明显将sex当成一个普通的数字变量处理了,而且用户的信息是和管理员在一个表里,太恐怖了,将sex换成1,mem_status=1提交你就是管理员了!过滤了单引号但是变量不放在单引号里过滤是没有什么用的,所以修补下吧!修补就是换成cint(CheckStr(Request.Form("mem_Sex"))),数字真的没啥作为,呵呵
主页跨站member.asp 这个是对hompage,也许有其他的,我看的版本是我们Loveshell的
搜索页面跨站search.asp 这个是对搜索的页面
还有后台的stats.asp 这个是对浏览器的refer变量
这几个都是对变量里的<>没有处理好,最好的办法是进入数据库的时候处理好,还可以避免别人插马!OK,就是这么多啦,呵呵~~~~