通达OA任意文件上传+任意文件包含分析
通达OA官方于2020-03-13发布了安全更新,修复了任意文件上传(2013、2013adv、2015、2016、2017、V11)和文件包含(V11)漏洞,从官网下到源码解密后,简单看了下
直接看主流的2017、V11产品吧,这个系列产品有全版本的变量覆盖问题
V11、2017任意上传以2017为例
补丁文件路径:2020_A1\2017版\ispirit\im\upload.php
左侧为原始代码,右侧为补丁,可以看到直接将鉴权的文件从else里释放了出来,避免了第5行传入P值导致的权限绕过问题
继续往下看任意文件上传的问题
$TYPE = $_POST["TYPE"];//获取TYPE$DEST_UID = $_POST["DEST_UID"];//获取DEST_UID(接收方ID)$dataBack = array();if (($DEST_UID != "") && !td_verify_ids($ids)) { $dataBack = array("status" ...
zzcms前台SQL注入
存储型XSS参考文章https://0x20h.com/p/9812.html
SQL注入还是markit()函数,既然没有对URI进行过滤直接写入数据库,那么能不能搞点事情呢?
先看看这个query函数怎么执行的
可以看到直接带入mysqli_query,那么尝试构造下payload吧
原始SQL语句
insert into zzcms_bad (username,ip,dose,sendtime)values('" . $_COOKIE["UserName"] . "','$userip','$url','" . date('Y-m-d H:i:s') . "')
既然只有$url可控,那么直接构造传入的URI就可以了,先直接让数据库执行sleep()函数
insert into zzcms_bad (username,ip,dose,sendtime)values('test','127.0 ...
ZZCMS2019版 代码审计记录
ZZCMS2019版本代码审计记录
下载官网下载http://www.zzcms.net/about/6.htm
重装漏洞step1.php中会检测是否存在install.lock,存在则显示已经安装过,否则跳出判断,执行正常安装
<?phpif(file_exists("install.lock")){echo "<div style='padding:30px;'>安装向导已运行安装过,如需重安装,请删除 /install/install.lock 文件</div>";}else{?>
但是该判断只在step1.php中存在,step2.php,step3.php,step4.php均不存在该代码
step3.php中设置了token,计算方式是:使用rand()生成一个随机数,然后以这个随机数作为前缀生成23位的唯一ID,然后再进行md5加密确保唯一性。
uniqid(prefix,more_entropy)函数基于以微秒计的当前时间,生成 ...
建站之星v2.7SQL注入
CTF比赛中出了这个CMS的题 下载回源码看了下
问题出在module/mod_email.php第147行左右
public function do_mail(){ global $db; $title = ParamHolder::get("title"); $msg = ParamHolder::get("email_s"); $msg .= ParamHolder::get("email_m"); $roles = ParamHolder::get("role"); $type = ParamHolder::get("type"); $user_email = ParamHolder::get('users'); $send_id = SessionHolder::get("user/id"); $time = time(); $ok = 0; ...