随笔分类 - CTF解题记录
摘要:源码: 过滤了点之后我们也不能使用文件包含来getshell了,因此我们只能利用无后缀的文件,因为在php中我们能够利用的无后缀的文件就是session,我们可以利用session.upload_progress来进行文件包含,利用PHP_SESSION_UPLOAD_PROGRESS参数 前瞻知识
阅读全文
摘要:题目源码 1 <?php 2 3 include("flag.php"); 4 5 highlight_file(__FILE__); 6 7 class FileHandler { 8 9 protected $op; 10 protected $filename; 11 protected $c
阅读全文
摘要:打开环境,能看到源代码 先进行代码审计,可以发现用get方式传递了三个参数:$text、$file、$password 首先看text参数,使用了file_get_contents()函数 我们可以使用php://input或者data://进行绕过,经测试发现php://input使用不了,所以我
阅读全文
摘要:既然题目为文件包含,说明有文件上传入口被隐藏了,查看源代码 发现注释表名存在一个upload.php文件,进入查看,果不其然文件上传入口就在该文件中 由于只支持jpg png gif格式的, 先写一个一句话图片马上传一下,然后抓包改为php后缀 发现还是无法上传成功,可能是后端代码进行了绕过,先不更
阅读全文
摘要:题目是一串php代码 读完代码之后,发现题目是想让我们传递参数ac和fn,使得$ac $f,$f = trim(file_get_contents($fn)) 首先先理解代码中几个函数的用法: extract() 函数从数组中将变量导入到当前的符号表。此函数会将数组键名当作变量名,值作为变量的值。
阅读全文
摘要:打开靶场 在源代码出可以发现存在文件code.txt 审计完代码后发现是一个比较简单的绕过题 首先要使v1不等于v2,但是md5值相等,有两种绕过方式 ①因为比较使用的是==而非 ,只要是以0e开头的MD5值,PHP都会将其解析成0,以此来实现绕过 ②MD5不能处理数组,当MD5(数组)时会返回NU
阅读全文
摘要:打开靶场,发现php代码 很明显,这是一道关于php正则表达式的题,代码也很简单,这里需要注意几个函数的用法 ①preg_match(pattern,str,match): pattern:匹配模式 str:参与匹配的字符串 match:如果提供了参数matches,它将被填充为搜索结果。 $mat
阅读全文
摘要:打开靶场,看样子是代码审计题 $exam的值为return'当前的时间的sha1值',接下来看限制条件: 如果没有用get传参传入flag,则会显示Click here 判断flag的长度与$exam的长度是否一致,若不一致则返回‘长度不允许’ 进行关键字过滤 如果传入的flag的值与flag值的s
阅读全文
摘要:打开靶场,就是一个拟真的二手交易平台 四处点点无果后,发现了两个可以上传文件的地方,一个是上传头像 另一个是发布商品的地方 推测可能存在文件上传漏洞,上传商品的地方需要审核,先在修改头像的地方抓个包测试一下,发现上传的图片会进行一次base64编码 image字段的格式:image=data:ima
阅读全文
摘要:打开靶场 查看网站源码后没有特殊的地方,先按照题目思路注册一个账号,使用注册的账号登录后弹出提示 当时第一时间想到了自己以前做过的一个题,是抓包然后伪造XFF为127.0.0.1来进行登陆,在经过一番测试后发现不适用于这道题目 在没有思路的情况下发现了题目的提示 在网上查找有关SQL约束攻击的资料后
阅读全文
摘要:打开靶场 输入数字1(经测验发现好像任意数字都会有回显)会有回显,而字符就不会有回显 这里需要注意的一个点就是输入字符后url上不会有回显,说明传参的方式是post而非get,查看源代码后证实了我们的猜测 惯例的使用单引号来检测注入点,发现没有回显,尝试使用堆叠注入来查看表名 继续尝试查看字段:1;
阅读全文
摘要:根据题目serialize3可知,这是一道关于反序列化的题,打开靶场环境 首先进行代码审计 代码中存在一个magic函数__wakeup(),执行该函数后会退出并返回"bad requests"。结合后面的?code=,我们的目的应该是构造URL去绕过__wakeup() 因为在执行unserial
阅读全文
摘要:打开靶场,显示:你能浏览这个网站吗? 查看源代码以及f12后没有看到想要的信息,进入index.php页面也没有变化其实这里需要有一个知识点要了解: 后缀名为.phps的文件:phps即php source,phps文件就是php的源代码文件,通常用于提供给用户查看php代码,因为用户无法通过web
阅读全文
摘要:打开靶场后先照例查看源码,发现了1p.html这个页面 进入这个文件,注意需要从源码的页面进入该页面,否则会显示另一个界面(暂不明白原理) 根据变量Words的形式,先进行URL解码,再进行部分base64解码后,发现解码后的字符又是URL编码格式,所以再次进行URL解码 最后得出一段代码,整理过后
阅读全文
摘要:打开靶场发现是一串意义不明的字符,在进行抓包和查看源代码无果后,我把目光转向了URL,开始觉得有点奇怪,传了line和filename两个参数,filename后接的是一串base64编码,解码后为keys.txt,访问该文件后还是一串意义不明的字符 此时注意到了filename可能是需要访问的文件
阅读全文
摘要:打开靶场后发现是一段意义不明的字符,根据题目的提示,首先先测试几个常用的备份文件后缀,经验证为index.php.bak(当然,可以用御剑进行扫描),将文件down到本地后进行查看 接下来来逐行分析php代码 ① ② ③ ④ ⑤这是至关重要的一步,我最开始没有解出这道题就是卡在这一步上,首先我不是太
阅读全文
摘要:先分析一下php代码的作用: 第一行表示包含了一个flag.php文件,也提示我们flag就在该文件中; 第二行定义了一个变量a,以$_REQUEST形式接受传递的hello参数; 第三行中eval()可以将字符串以php代码的形式执行 分析完代码作用后解题思路就清晰了起来,我们可以通过eval函数
阅读全文
摘要:打开靶场 先随便输入默认的user和password检测一下,提示ip禁止访问,需联系本地管理员登陆, 然后再习惯性的打开源码,发现有一条类似base64编码的注释 解码后为test123,结合前文可知,这可能是管理员的登陆密码,使用admin和test123尝试登陆 发现还是ip禁止访问,可以尝试
阅读全文
摘要:题目乍一看我第一反应是使用php://input伪协议,但是构建payload发现并不能实现,可能是phpinfo()中allow_url_fopen没有开启,导致不能使用php://input 但是源代码中由要求payload中存在php://,同时题目也告诉了flag就在/flag中,此时我们可
阅读全文
摘要:根据题目提示去查看源代码中的js脚本 在函数checkfilesuffix()中定义了一个白名单whitelist,通过变量file_suffix可以看出该网站需要验证的是上传文件的后缀, indexOf()返回-1时说明未查找到字符串,综上可得出上传的文件只能是以.jpg、.png、.gif为后缀
阅读全文

浙公网安备 33010602011771号