人总是对未知的事情充满恐惧,当你开始行动时,未知的恐惧就会迎刃而解。
又是跟着Dream ZHO大神学专升安的一天
jwt
注册后登录抓包。
发现了JWT
用JSON Web Tokens - jwt.io这个网站解一下可以得到
发现不知道密码用jwtcrack解一下即可。
然后再放到网站上加密一下。
然后再放入包中发送
成功
login
在f12里发现了一个学号密码。
登陆成功
然后努力了很久,当我试一下20200102时,
20200103时
!!!!!!爆破
最终爆出:flag{dlcg}
iphone
一眼user-aggent头
浮生日记
发现写入的字符数会出现在浮生日记里可以使用xss
发现script被过滤了那就用双写。
发现不对,
那就把前面闭合一下,后面注释掉。
payload:"><scriscriptpt>alert(1)</scriscriptpt>**
$$
<?php
/*
PolarD&N CTF
*/
highlight_file(__file__);
error_reporting(0);
include "flag.php";
$a=$_GET['c'];
if(isset($_GET['c'])){
if(preg_match('/flag|\~| |\`|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\-|\+|\=|\{|\[|\;|\:|\"|\'|\,|\.|\?|\\\\|\/|[0-9]|\<|\>/', $a)){
die("oh on!!!");}
else{
eval("var_dump($$a);");}}
。。。。。。过滤了这么多,这还绕你妹啊。
看了一下wp,学到了新知识。
$GLOBALS:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是数组的键),与所有其他超全局变量不同,$GLOBALS在PHP代码中任何地方总是可用的
而global在PHP中的解析是:global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。 注:在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用
试一下
爆破
<?php
error_reporting(0);
if(isset($_GET['pass'])){
$pass = md5($_GET['pass']);
if(substr($pass, 1,1)===substr($pass, 14,1) && substr($pass, 14,1) ===substr($pass, 17,1)){
if((intval(substr($pass, 1,1))+intval(substr($pass, 14,1))+substr($pass, 17,1))/substr($pass, 1,1)===intval(substr($pass, 31,1))){
include('flag.php');
echo $flag;
}
}
}else{
highlight_file(__FILE__);
}
?>
substr(string,start,length):取字符串
string="hello world"
substr(string,6,2);->wo
substr($pass, 1,1):取第二个字符,substr($pass, 14,1)取第十五个字符 substr($pass, 17,1)取第18个字符
所以我们要满足md5的第二个字符等于第十五个字符,第十五个字符等于第十八个字符,第二个字符+第十五个字符+第十八个字符/第二个字符=第三十二个字符。
。。。。。。。你妹的这咋爆破。
虽然不知道为啥是这个长度。。。
XFF
一眼xff
rce1
直接ls一下,发现了fllllaaag.php
直接读取即可
GET-POST
<?php
/*
PolarD&N CTF
*/
highlight_file(__FILE__);
include('flag.php');//文件包含,flag在flag.php文件中,不用想了你访问也没用
$id = $_GET['id'];
echo "你必须让我感受到你的真诚,用GET请求传递一下id吧,令id=1";
if($id == '1'){
echo "干的漂亮";
echo "<br/>";
echo "虽然我感受到了你的真诚,但还是不行,用POST请求传递一下jljcxy吧,令jljcxy=flag";
$jljcxy = $_POST['jljcxy'];
if($jljcxy == 'flag'){
echo $flag;
}
}
你必须让我感受到你的真诚,用GET请求传递一下id吧,令id=1
一眼,。。。。。。不会就传个参吧。
。。。还真是
被黑掉的站
看站点,试了www.zip,robots.txt 发现没有,直接开扫!!!!
扫到了shell.php和index.php.bak
index.php.bak是字典
。。。。。。。开爆!!!!!!!
最后爆出来nikel
签到题
看了源码也啥都没有,直接开扫!!!!!!
扫出来/data
<?php
error_reporting(0);
$file = $_GET['file'];
if(!isset($file))
$file = '1';
$file = str_replace('../', '', $file);
include_once($file.".php");
highlight_file(__FILE__);
?>
我们要绕过str_replace将../替换为空格,可以用双写绕过。
payload:?file=php://filter/read=convert.base64-encode/resource=..././..././..././..././flag