前些天看了一个关于MYSQL注入攻击内容,现在有关问题请大家讨论一下
http://www.77169.com/Article/Class5/Class12/Class20/200409/11798.html
关于这个网址里的攻击方式,本人觉得现在新版本的PHP默认状态就很难实现,因为他假设magic_quotes_gpc均为off,所以基本上来说是安全的。
还有一个原因就是他的假定条件还要知道数据表名称甚至于结构,这样子对于一个陌生的网站我们一般是不太可能知道的,所以受攻击的可能性也不大。
现在本人有一个假设,如果我所做的网站存在一个这样子的注入漏洞,当本一条语句中的WHERE后面部分全部可以自由被设置(输入的引号都合法)的时候,试问有没有可能被攻击者得到所有表名称和甚至于字段名称或者字段数?假定可以,如何实现呢?
我的条件是magic_quotes_gpc为on
问题点数:20、回复次数:6Top
1 楼snmr_com(麒麟厍人)回复于 2005-04-08 09:27:35 得分 5
只要有一个可能,就是漏洞……
微软很多已修正的bug都是我们未经历的Top
2 楼fangwei1(杨威利)回复于 2005-04-08 11:08:50 得分 5
如果你的mysql支持union的话,你可以试试,你可以构造这个语句 id=-1 union select 1,database(),version(),可以得到你的数据库名Top
3 楼heiyeshuwu(黑夜路人)回复于 2005-04-08 12:31:55 得分 5
其实很多还是可以绕过的,安全不是觉得的。。。Top
4 楼keaizhong(可爱钟)(温州的PHPER)(19801010)回复于 2005-04-08 13:27:13 得分 0
回复人: fangwei1(杨威利) ( ) 信誉:105 2005-04-08 11:08:00 得分: 0
如果你的mysql支持union的话,你可以试试,你可以构造这个语句 id=-1 union select 1,database(),version(),可以得到你的数据库名
不明白这样子如何能得到数据库名?你根本就不知道表的字段数,我记得union要字段相同才可以用。Top
5 楼fangwei1(杨威利)回复于 2005-04-08 17:16:33 得分 5
只要字段数相同就可以了,用猜的就行了,譬如对你的新闻表的话,字段数不会很多,猜测一下就行了啊Top
6 楼keaizhong(可爱钟)(温州的PHPER)(19801010)回复于 2005-04-09 11:43:06 得分 0
名称也要相同的。要不然出不来的,这个我试过了。
你这样子就算可行的话也只能得到库名,并没有什么利用价值。
要得到表名和数段名才有可能得到数据。Top




