最近练渗透太多有点累,做做新生赛的题娱乐娱乐
泄漏的秘密
按照提示,首先看robots.txt,拿到一半。还有泄露,那就www.zip,直接拿下
flag{r0bots_1s_s0_us3ful_4nd_www.zip_1s_s0_d4ng3rous}
Begin of Upload
丢个jpg改文件后缀名,浏览器执行不了,用蚁剑连webshell
flag{0b5b70a6-d910-4fe2-b5c7-d5bf9f0a0ebd}
Begin of HTTP
GET:?ctf=1
POST:secret藏源码里了,base64解一下就行
改cookie:power=ctfer
加UA就行
加referer
最后一关加X-REAL-IP(老废物先试了XFF和Client-ip居然没过,哭死)
hackbar传参
flag{8a0c4d13-bb9e-4906-ad6f-1d59b5513ff0}
ErrorFlask
空参数报错直接出flag,这里对于传参敏感一点,尝试非常规值会有意想不到的效果
flag{Y0u_@re_3enset1ve_4bout_deb8g}
Begin of PHP
<?php
error_reporting(0);
highlight_file(__FILE__);
if(isset($_GET['key1']) && isset($_GET['key2'])){
echo "=Level 1=<br>";
if($_GET['key1'] !== $_GET['key2'] && md5($_GET['key1']) == md5($_GET['key2'])){
$flag1 = True;
}else{
die("nope,this is level 1");
}
}
if($flag1){
echo "=Level 2=<br>";
if(isset($_POST['key3'])){
if(md5($_POST['key3']) === sha1($_POST['key3'])){
$flag2 = True;
}
}else{
die("nope,this is level 2");
}
}
if($flag2){
echo "=Level 3=<br>";
if(isset($_GET['key4'])){
if(strcmp($_GET['key4'],file_get_contents("/flag")) == 0){
$flag3 = True;
}else{
die("nope,this is level 3");
}
}
}
if($flag3){
echo "=Level 4=<br>";
if(isset($_GET['key5'])){
if(!is_numeric($_GET['key5']) && $_GET['key5'] > 2023){
$flag4 = True;
}else{
die("nope,this is level 4");
}
}
}
if($flag4){
echo "=Level 5=<br>";
extract($_POST);
foreach($_POST as $var){
if(preg_match("/[a-zA-Z0-9]/",$var)){
die("nope,this is level 5");
}
}
if($flag5){
echo file_get_contents("/flag");
}else{
die("nope,this is level 5");
}
}
第一层:数组绕过?key1[]=1&key2[]=2
第二层:数组绕过key3[]=3
第三层:数组绕过key4[]=4
第四层:0x绕过key5[]=0x2023
第五层:不能有数字和字母,post传key3[]=@&flag5[]=@
flag{890f5516-6fb6-45fa-820b-a28d83a92812}
R!C!E!
<?php
highlight_file(__FILE__);
if(isset($_POST['password'])&&isset($_POST['e_v.a.l'])){
$password=md5($_POST['password']);
$code=$_POST['e_v.a.l'];
if(substr($password,0,6)==="c4d038"){
if(!preg_match("/flag|system|pass|cat|ls/i",$code)){
eval($code);
}
}
}
password需要爆破,问ChatGPT要个脚本
import hashlib
target_prefix = "c4d038" # 目标前缀
counter = 0 # 计数器
while True:
a = str(counter) # 将计数器值转换为字符串
hash_object = hashlib.md5(a.encode()) # 计算a的MD5哈希值
hashed_a = hash_object.hexdigest() # 获取哈希值的十六进制表示
if hashed_a[:6] == target_prefix: # 检查前6位是否与目标前缀匹配
print(f"找到符合条件的参数'a':{a}")
break
counter += 1
# 找到符合条件的参数'a':114514
php在解析非法字符时,会将第一个非法字符解析为_
,[
是非法字符,然后用文件包含打
flag{758d020f-f381-48c3-b07d-40f71ecfa15a}
EasyLogin
估值9个亿,就只会把你换成我??啊哈哈哈哈
登录功能中,密码被md5加密,burp suite爆破一下,设置按下图搞就好,密码000000
burpsuite抓包登录过程,然后forward放包一个一个重放,在这个包发现flagflag{d4123338-7939-4f21-a9fd-a51184d6dcc0}