日期:2014-05-17  浏览次数:20371 次

我的网站是不是被恶意入侵了
我的是php写的,服务器是justhost上申请的。
今天查看后台发现admin有被别人在凌晨用的痕迹,但那个时间我没上网,而且那个进入我admin的人IP是在中东,我后台有自动记录ip。
后来查看justhost日志和最近访客,发现这个IP访问了很多类似这种的页面:

/au/shop.php?dest_id=3&shop_id=999999.9+union+all+select+%28select+concat%280x7e%2C0x27%2CCART.username%2C0x27%2C0x7e%29+from+%60whimwin1_DB%60.CART+Order+by+ip_address+limit+40%2C1%29+--

正常人访问的页面应该是/au/shop.php?dest_id=3 之类的,这么长的访问地址是不是恶意试探的?而且在1分钟之内访问了很多类似的地址,是不是用黑客软件在自动探测????

但是我又感觉不像,这地址里面包括了我数据库名字和一些表,这些是怎么出来的???

愁死我了。。。


------解决方案--------------------
探讨

引用:

应该是在找你SQL的注入点.可能已经找到了一些漏洞,他知道你数据库名和一些表 这个可能有危险,当然他也可能是注入了别人然后再得到你这边的数据,不过还是假设你有没有过滤好的地方吧

检查一下自己的代码将关键的部分都仔细的做个安全过滤。没事,只要你不是明文保存密码,问题不大。
互联网上闲得蛋痛的人太多了


那关于过滤 我只知道一个过滤特殊字符的 有没有相……

------解决方案--------------------
3&shop_id=999999.9 union all select (select concat(0x7e,0x27,CART.username,0x27,0x7e) from `whimwin1_DB`.CART Order by ip_address limit 40,1) --

我们来分析一下,你原本将3和shop_id插入到sql语句中执行查询,结果人家在shop_id=99999.9之后加入了后边的union语句,结果就是你的sql语句是原本的:

select * from xxx where id=3 and shop_id 9999.9 变成了:

select * from xxx where id=3 and shop_id 9999.9 union all select (select concat(0x7e,0x27,CART.username,0x27,0x7e) from `whimwin1_DB`.CART Order by ip_address limit 40,1) --

后面的--是为了注释掉你原本sql语句where子句后面可能还存在的其他例如orderby子句。

后边查询的东西不知道whimwin1_DB是什么了。