死亡代码绕过的思想是文件名是filter,采用decode解码,利用string.strip_tags除去xml标签来去掉死亡代码,,那我们是不是也可以利用这个思想来试试。 我们看到经过一次base64解码后ctfshowshowshowwww字符串只有两个字符是可见字符,r与0,在进行一次就可以了,但是waf里面限制了只能经过1次base64,所以这里就没头绪了。官方wp...
easy_unserialize 简单分析可以发现是反序列化,还有ini_set。 发现默认写入setting.inc,写入的内容还要在反序列化一次。 非预期解: 先看ini_set可以设定的值里有一个error_log 这里代表报错信息会写入我们设定的文件里。 那么怎么构造脚本错误呢,这里利用un
import requests import time # Author:ctfshow-h1xa url = "http://xxx/" def step1(): data={ "username":"userLogger", "password":"<?=eval($_POST[1]);?>.php" } response = requests.post(url=url+"index.php?action=do_register",data=data) time.sleep(1) if "script" in response.te...
$a=unserialize($_GET['ctfshow']); throw new Exception("高一新生报道"); 这里有个throw函数,大概是抛出一个异常,然后让程序异常退出,这个时候就是未正常退出的情况,所以不会调用__destruct方法,这里我们就要想办法在throw函数执行之前调用析构函数,目前我知道的调用该函数的方法如下 等待程序完整执行完毕,也就...
“有人见星辰,有人见尘埃” 好文要顶 关注我 收藏该文 kode 粉丝- 6 关注- 2 +加关注 0 0 « 上一篇: ctfshow 卷王杯 easy unserialize » 下一篇: FSCTF 2023 posted @ 2023-10-09 09:37 阅读(143) 评论(0) 刷新页面返回顶部 登录后才能查看或发表评论,立即 登录 或者逛逛 博客园首...
CTFSHOW刷题之旅--PHP特性[89-150](未完) 变量反射函数数组字符串 字符^ 和 $ 同时使用时,说明我们需要匹配以php开头和以php结尾的字符 /m 是多行匹配.这里我们可以用%0a也就是换行符来绕过第二个if。 YanXia 2023/04/07 1.3K0 php弱类型初级入门介绍 php 0x00 前言最近DeDeCMS爆出来一个前台任意用户密码...
获取到源码之后img这个参数就已经没有用了,后面的cmd参数就是第二个考点。由代码第25行得知cmd参数是要作为命令在服务器上进行执行,在第20行看到一个恐怖的正则匹配,基本上禁用了我们读取文件的所有命令,同时下面第24行又缝合了一个md5的强类型比较考点。
发现默认写入setting.inc,写入的内容还要在反序列化一次。 非预期解: 先看ini_set可以设定的值里有一个error_log 这里代表报错信息会写入我们设定的文件里。 那么怎么构造脚本错误呢,这里利用unserialize_callback_func 比如上图,反序列化A,但是文件里没定义A,那么反序列化就会尝试调用aaa()函数,同时会把类名作为...
发现默认写入setting.inc,写入的内容还要在反序列化一次。 非预期解: 先看ini_set可以设定的值里有一个error_log 这里代表报错信息会写入我们设定的文件里。 那么怎么构造脚本错误呢,这里利用unserialize_callback_func 比如上图,反序列化A,但是文件里没定义A,那么反序列化就会尝试调用aaa()函数,同时会把类名作为...