swp
提示.swp文件
访问一下
/.index.php.swp
观察代码发现,最大回溯上限绕过preg_match
构造脚本
import requests
url = 'http://c7800bea-2a12-428d-b1d0-f2272162efa4.www.polarctf.com:8090/'
data = {
'xdmtql': 'sys nb'+'very' * 250000
}
r = requests.post(url=url, data=data).text
print(r)
运行脚本,获得flag
简单rce
过滤了空格,可以联想到用include直接包含/flag
/?sys=include"/flag";
需要输入一个POST参数yyds=666
蜜雪冰城吉警店
要求点到第九个单子给flag
尝试输入?id=9不管用
在源码里直接把一个的id改成9最后成功
召唤神龙
在游戏结束这里查看调试器
在main.js里面发现了JSfuck解密
直接在控制台执行
seek flag
查看源码注释说爬虫,直接查一下
应该是flag 但是好像只有一半,抓包看看
抓包后发现Cookie有个id改一下试试
改成1后直接获得另外两个flag
按顺序拼接
flag{7ac5b3ca8737a70f029dc0ad71dadd11}
login
查看源码发现了注释,输入一下回显登陆成功
尝试改个数
将学号位置最后一个数改成2回显了f继续更改,挨个查看
逐个尝试02到11挨个回显一个字母,拼接起来就是flag
flag{dlcg}
iphone
点了一下Enter没发现什么有用的
查看源码发现是UA
抓包更改即可
改成iphone 获得flag
浮生日记
这题说让弄个弹窗
直接<script>alert(1)</script>
被绕过了
双写试试
<scrscriptipt>alert(1)</scrscriptipt>
绕过成功但是还不行,试试">闭合
"><scrscriptipt>alert(1)</scrscriptipt>
成功弹窗
$$
$GLOBALS:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是数组的键),与所有其他超全局变量不同,$GLOBALS在PHP代码中任何地方总是可用的
global在PHP中的解析是:global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
注:在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用
$GLOBALS:用于访问所有全局变量(来自全局范围的变量),即可以从PHP脚本中的任何范围访问的变量。
爆破
get方式传入 一个pass变量,且满足其md5值 满足
爆破pass值试试
XFF
都说了要用1.1.1.1的ip才行,那就直接伪造
rce1
在源码里看到了ip和ping用拼接符试试
127.0.0.1|ls
因为过滤了空格,用${IFS}代替
127.0.0.1|cat${IFS}$fllllaaag.php
因为flag被注释了,要上源代码里找一下
GET-POST
先传一个id=1
继续传
被黑掉的站
找不到啥有用的,用御剑扫一下
发现了shell文件和index的备份文件
shell文件需要密码
在index.php.bak里面发现大量内容,怀疑shell的密码就再里面,爆破一下
爆出nikel是密码,不在bp里查看的话直接在shell里输入也可以得到flag
签到题
在页面和源码里没有发现有用的,看到了cookie哪里是个no,抓包改一下看看
发现了一串base加密
解密后是一个php网页,访问得
include会直接执行文件,用php伪协议进行绕过
?file=php://filter/read=convert.base64-encode/resource=..././..././..././..././flag
解密得flag
签到
提交这里无法点击
在查看器里删掉disabled 再随便输一个数就可以获得提示
接下来需要把maxlength的数值调大一点,不然ilovejijcxy输不全
session文件包含
随便输一个数
再往下也没什么东西了,查看源码发现了php文件用伪协议查看一下
?file=php://filter/read=convert.base64-encode/resource=1.txt
解码得到php代码
<?php
session_start();
error_reporting(0);
$name = $_POST['name'];
if($name){
$_SESSION["username"] = $name;
}
include($_GET['file']);
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href=action.php?file=1.txt>my dairy</a>
<a href=action.php?file=2.txt>my booklist</a>
</body>
</html>
session文件名的构造是sess_ + sessionid , sessionid在cookie中可以查看
有了参数,开始猜存放session文件的位置,一般默认为tmp,直接执行命令访问session文件
查看cookie
然后上传一句话木马
蚁剑连接获得flag
Don't touch me
在源码里面发现了2.php,直接访问
Click Me 不让点,上编辑器里删掉disabled就可以了
点击后给出fla.php
得到flag
robots
名字都叫robots了直接查看一下
发现fl0g.php
访问获得flag
php very nice
比较简单的反序列化
直接构造
回显了flag.php
避免直接执行,用include和php伪协议就行了
解码
ezupload
这是个文件上传,随便上传一个,提示要用GIF才行,将一句话木马所在的文档后缀换成GIF上传后用蚁剑连接即可
cookie欺骗
提示只有admin用户才行,再看一下cookie是user
抓包改成admin即可
upload
还是个文件上传,上传文件后路径不是php,所以说php应该是被过滤了
双写试试
后缀是php,写入成功
蚁剑连接
干正则
先看代码,发现可以构造
?id=a[0]=www.polarctf.com
好似无法直接查看,用cat直接查看试试
?id=a[0]=www.polarctf.com&cmd=|cat `f*`
在源码中找到flag
cool
系统命令执行函数没ban干净
payload
?a=passthru('cat f*');
标签:polar,直接,查看,web,flag,CTF,源码,文件,php From: https://www.cnblogs.com/kriton/p/18604989