看完有一点小建议,很多GET、POST获取参数后都传递给了函数get(),函数get()应该贴一下
waychar报名系统VER 0.30 SQL注入复现
1. 前言
在cnvd上看到最新的披露中有waychar报名系统的sql注入,于是想复现看看。
漏洞复现环境
源码下载地址:http://down.chinaz.com/soft/39094.htm
使用phpstudy搭载环境
2. 前台登陆处存在SQL注入
复现
登陆处,用数据库已有的账号密码登录
抓包,保存为txt文件
sqlmap:
分析
controller/ajax.php
24-58行
前端传输的username
参数没有任何的过滤操作就拼接到了sql语句中,导致了sql注入
3. 前台找回密码处存在SQL注入
复现
输入数据库中存在的号码
截获数据包,保存为txt文件
使用sqlmap
分析
controller/ajax.php
12-23行
mobi
参数没有做任何过滤就传递给$mobi
变量,然后拼接在sql语句中,导致了sql注入
4. 前台重置密码处延时注入
复现
payload:12345678'and(select*from(select+sleep(5))a/**/union/**/select+1)='
分析
controller/ajax.php
100-113行
password_new
参数没有做任何过滤操作,传递给了$password_o
变量,并且最后拼接在了SQL语句中
sql语句:update w_user set password_o = '$password_o', password = '$password' where id = "
. $_COOKIE['id'];
5. 活动信息处sql注入
复现
payload:/index.php?c=race&action=race_msg&id=57 order by 1,2,3,4,5,6,7
可以看到是正常显示页面的
payload:/index.php?c=race&action=race_msg&id=57 order by 1,2,3,4,5,6,7,8
红框部分的内容消失不见
说明有7个字段
payload:/index.php?c=race&action=race_msg&id=57 union select 1,2,3,4,5,user(),7
获得了当前的用户
分析
controller/ajax.php
136-142行
id
参数没有过滤,导致了sql注入
6. 后台会员管理搜索处存在SQL注入
密码默认为admin123
会员管理
随便输入一个号码,并抓包
将数据包保存为一个txt
结果
分析:
代码位置:controller/user.php 12-24行
mobi参数没有经过过滤,就拼接到sql语句中,导致了SQL注入
7. 总结
经过复现了6处sql注入,发现源码中基本上对参数都没有做任何过滤操作,导致了整个站中都有SQL注入,感兴趣的可以在官网下载源码来看看。