事情起因是QQ上的一位朋友发过来一网站,说好象有漏洞,因为这位朋友是刚刚接触网络安全方面的,我接过来网址一看,真所谓漏洞百出呀,当然这样的网站是不会被小黑错过的,首页明显的被人挂了马。那就做做好事把这个马去掉吧!从入侵到得WEBSHELL不到三分钟。当然不是我的水平有多高,而是太多太多的……得到WEBSEHLL一看发现装有Srv-u,上传这个ASP版的提权工具还能提权。汗之。下面我们开始看看到底有什么漏洞。
一、无处不在的注入
在newsshow1.asp中的157行代码如下:
<%
sql="select * from news where id="&Request("id") '直接用Request取得ID值
set rs=conn.execute (sql)
if not rs.eof or err then
%>
直接用Request取得ID值,什么也没过虑,就执行SQL语句了,这样就能执行我们的“恶意”的SQL语句了。相信菜菜朋友们也能看懂吧!见图一。

二、比较流行的跨站
在首页有个给访问量发布信息的,文件为newsadd.asp。打开后发现处理文件为saveNewsAdd.asp。图二。直接来到这个文件看一下第3行到23行的代码:

<%
dim sql
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set InsertCursor = Server.CreateObject("ADODB.Recordset")
cmdTemp.CommandText = "SELECT top 1 * FROM news order by id desc"
cmdTemp.CommandType = 1
Set cmdTemp.ActiveConnection = conn
InsertCursor.Open cmdTemp, , 1, 3
InsertCursor.addnew
InsertCursor("title") =Request("title") '取得客户端提交的名字
InsertCursor("content") =Request("content")'取得客户端提交的内容
InsertCursor.Update
' response.write InsertCursor("id")
' response.End
' InsertCursor.movelast
%>
<script language=Javascript>
<!--
alert("添加成功!");
window.location="newsAdd.asp"
-->
上面是我自己标上去的,还是用Request直接取得用户提交的名字和内容。什么也没过虑,就会告诉添加成功了。见图三。

[1] [2] 下一页