代码是通过uc浏览器,对php网站的sql注入吗?

刘垣德
  • 23
回复
阅读 4k
1 个回答

首先要解释一下什么是注入(inject),因为动态网站多少会涉及到数据库操作,如果我有一个页面atricle.php 它需要获取一个参数id -> article.php?cat=recent
网站后台逻辑就是截取这个GET上来的cat,然后把这个id带入sql查询。

$cat = $_GET['cat']
$sql = "select * from article where 'cat' = '$cat'"

我们查询语句可能是这样的
select * from article where 'cat' = 'recent'
正常用户访问的情况下是没有问题,那么要是别人对id这个参数动手脚,同时网站又没有做相关的限制(magic_quotes_gpc = off )
我们可以构造URL : article.php?cat=recent' union select * from user where 'username' = 'test
这个时候 网站GET到的cat就会变成recent' union select * from user'
sql语句就会变成

select * from article where 'cat' = 'recent' union select * from user where 'username' = 'test' 

这样就会导致user表泄露

大概理解了原理之后Sebug说faq.php有注入漏洞,那么就是faq.php在处理接收数据的时候没有做处理。(防范SQL注入的方法有很多,常见的是特殊字符转义,即是把一些SQL关键字转义为空或者其他的)
然后文章说的UC_KEY不是指UC浏览器,而是UCenter旗下的软件(http://www.comsenz.com/products/ucenter/)。
恩,大概就是这样了,希望对题主有帮助。

宣传栏