发这篇文章还是想说明一下,黑客在我个人认为是一个褒义词,而不是大家所认为的那些偷鸡摸狗之小人。
现在做一个网站,也非常简单,买一个域名,一个空间,在网上下载一套CMS,一个站就成立,而很多这样的站长朋友,其实对网站脚本方面是不懂的,所以当网站被黑,很少有人直接去源码找原因。
今天的实战案例就以"网域高科行业B2B商务平台"为案例,这个以前国内有人分析过,但是只说了程序漏洞的利用,并没有提及如果修复。
原文地址:
http://www.176ku.com/wenzhai/ruqin/200907/10877.html
文章也是比较长,所谓外行看热闹,内行看门道,就装一回内行和大家一起分开来进行一些交流。
在leaveword_save.asp文件里有一些变量没有过虑,下面是7到43行代码:
图中所示:3个变量没有经过什么过滤直接入库
由于没有进行任何特殊符号的过滤,攻击者就可以任意构造跨站语句(跨站攻击的特殊性,用户名和联系方式处由于限制了字符入库的长度,所以攻击者选择了入库字符比较长的"反馈内容")
进入提交之后,后台显示效果
由于有了前面的XSS跨站漏洞,当管理员进入后台,点击反馈信息进行查看时,被XSS跨站攻击。
当然跨站式攻击不能直接获得网站后门,所以攻击者又对网站常见的"数据库备份"源码进行了分析。
这个后台有数据库备份功能,我们要做的是利用管理员身份替我们备份出一个WEBSHELL来,先看看他的数据库备份代码是怎么写地,在admin\System\admin_backdb.asp文件中的108到129代码如下:
攻击者可以先上传一个RAR的马儿,然后在数据库路径里填上,马的地址为:"/oledit/UploadFile/200712/2007121544821758.rar",这里需要注意的是路径一定要填对,否则备份就会不成功的。改动好的代码如下:
把这个保存为XX.jpg上传到服务器,因为HTML改成JPG是可以解析的,路径为:oledit/UploadFile/200712/200712155756468.jpg,在
意见反馈里写上如下挂马语句:
这样当管理员看到时就会自动备份出WEBSHELL来了,如图
知道了整个过程,我们就可以在源码处进行漏洞修补,先看一下我给出的漏洞修补方案。
当把这些特殊符号进行转换过滤后,入库的信息将不会产生跨站效果,可以有效防止跨站攻击的产生。
以上如有不足请各位指点并指出,谢谢观看。