fuchou-angle 发表于 2009-7-10 15:54:23

谈跨站式攻击(XSS)实战与漏洞修补

  发这篇文章还是想说明一下,黑客在我个人认为是一个褒义词,而不是大家所认为的那些偷鸡摸狗之小人。
  现在做一个网站,也非常简单,买一个域名,一个空间,在网上下载一套CMS,一个站就成立,而很多这样的站长朋友,其实对网站脚本方面是不懂的,所以当网站被黑,很少有人直接去源码找原因。
  今天的实战案例就以"网域高科行业B2B商务平台"为案例,这个以前国内有人分析过,但是只说了程序漏洞的利用,并没有提及如果修复。
 
  文章也是比较长,所谓外行看热闹,内行看门道,就装一回内行和大家一起分开来进行一些交流。
  在leaveword_save.asp文件里有一些变量没有过虑,下面是7到43行代码:
  
http://pimg.qihoo.com/qhimg/baike/820_662/1f/01/06/1f01061q118db2.61fd34.jpg
  图中所示:3个变量没有经过什么过滤直接入库
  由于没有进行任何特殊符号的过滤,攻击者就可以任意构造跨站语句(跨站攻击的特殊性,用户名和联系方式处由于限制了字符入库的长度,所以攻击者选择了入库字符比较长的"反馈内容")
  
http://pimg.qihoo.com/qhimg/baike/444_233/15/01/54/1501543q119c43.0569e2.jpg
  进入提交之后,后台显示效果
  
http://pimg.qihoo.com/qhimg/baike/399_257/17/02/e1/1702e15q1191a9.e416d3.jpg
  由于有了前面的XSS跨站漏洞,当管理员进入后台,点击反馈信息进行查看时,被XSS跨站攻击。
  当然跨站式攻击不能直接获得网站后门,所以攻击者又对网站常见的"数据库备份"源码进行了分析。
  这个后台有数据库备份功能,我们要做的是利用管理员身份替我们备份出一个WEBSHELL来,先看看他的数据库备份代码是怎么写地,在admin\System\admin_backdb.asp文件中的108到129代码如下:
  
http://pimg.qihoo.com/qhimg/baike/794_417/1a/03/a2/1a03a25q11453c.fcdb15.jpg
  攻击者可以先上传一个RAR的马儿,然后在数据库路径里填上,马的地址为:"/oledit/UploadFile/200712/2007121544821758.rar",这里需要注意的是路径一定要填对,否则备份就会不成功的。改动好的代码如下:
  
http://pimg.qihoo.com/qhimg/baike/801_473/19/01/14/1901145q119964.2bd8f3.jpg
  把这个保存为XX.jpg上传到服务器,因为HTML改成JPG是可以解析的,路径为:oledit/UploadFile/200712/200712155756468.jpg,在
  意见反馈里写上如下挂马语句:
  
http://pimg.qihoo.com/qhimg/baike/417_216/15/01/32/1501322q119a55.626304.jpg
  这样当管理员看到时就会自动备份出WEBSHELL来了,如图
  
http://pimg.qihoo.com/qhimg/baike/499_352/13/04/55/1304557q1193b6.53743f.jpg
  
http://pimg.qihoo.com/qhimg/baike/396_185/11/02/45/110245eq118b14.4718bb.jpg
  知道了整个过程,我们就可以在源码处进行漏洞修补,先看一下我给出的漏洞修补方案。
  
http://pimg.qihoo.com/qhimg/baike/403_259/1c/01/f1/1c01f18q1197bc.0162b7.jpg
  
http://pimg.qihoo.com/qhimg/baike/387_236/14/02/c1/1402c16q11950d.4db4f4.jpg
  当把这些特殊符号进行转换过滤后,入库的信息将不会产生跨站效果,可以有效防止跨站攻击的产生。
  以上如有不足请各位指点并指出,谢谢观看。
页: [1]
查看完整版本: 谈跨站式攻击(XSS)实战与漏洞修补