刷题步骤按着解题人数从多到少顺寻
知识点记录
- 模板注入
- 模板注入
- 文件解析漏洞+远程代码执行漏洞
- 查看源代码的方法(F12、抓包、开发者工具)
- 客户端传输数据—修改网页源代码
- 禁用JS脚本,unicode解码
- POST方式,上传数据
- PHP弱类型----部分数据在“==”两侧相等
- Burpsuite抓包,审计源代码,unicode
- Burpsuite抓包,重放,找flag
- 文件读取,构造URL
- $GLOBALS可以查看全局作用域中的所有变量
- 读取network中header部分
- 目录扫描
- 获得密码(爆破或者base64解码),repeter伪造身份
- URL解码
- 文件包含漏洞+PHP伪协议绕过
- Bp爆破
- 目录扫描+PHP弱类型之MD5弱类型
- sql注入:工具以及手注
- Python脚本+正则表达式
- Python脚本
- Python脚本
- PHP
工具
1.火狐:hackbar
2.抓包改包:burpsuite
3.目录扫描:御剑扫描(记得更新字典)
4.sql注入:sqlmap
5.连接木马:中国菜刀/蚁剑
1.Simple_SSTI_1
解法: 在URL中构造
?flag={{config.SECRET_KEY}}
审题:
相关知识点:
Python沙盒绕过
模板注入(STTI)
模板引擎(STT)
2.Simple_SSTI_1
解题:
1.工具:tqlmap
2.手工
3.Flask_FileUpload
解法:
创建一个文件,写python代码,修改文件格式为 .jpg
import os
os.system('cat /flag')
修改文件格式方法自行搜索
审题:
<!-- Give me the file, and I will return the Running results by python to you! -->
翻译:上传一张图片,会被以python代码执行
相关知识点:
①文件解析漏洞
②远程代码执行漏洞
③python:os模块及相关函数
4. 滑稽
审题:
一张滑稽图片
解法:
目的:查看源码,得到flag
1.F12
2.右键
3.开发者工具
4.ctrl+u
5. 计算器
审题:
输入数字,进行验证,但是长度有限制,只有一个单位
解法:
开发者工具下,打开源代码,修改maxlength为2或3
6. 你必须让他停下
审题:
点开环境,会不断的出现弹窗
解法:
禁止浏览器脚本功能->停止弹窗
查看源代码,发现flag
flag是unicode编码形式->用工具或在线网站 进行解码即可
7. GET/POST
审题:
查看源代码
$what=$_POST['what']; //接受post过来的参数what,存到what里
echo $what; //打印
if($what=='flag') //如果值是flag
echo 'flag{****}'; //打印flag
解法:
用火狐的hackbar工具
post data:what = flag
得到flag
8. 矛盾
审题:
查看源代码
发现:先要满足$num不是数字和数字字符串,还要满足$num==1
代码审计-PHP弱类型
在php语言中,相关数据在‘==’两侧相等
PHP弱类型
<?php
var_dump(1=="1");
var_dump(123=='123asd');
var_dump("1"==true);
var_dump("0"==false);
var_dump(-1 == true);
var_dump(true=="php");
var_dump(0==NULL);
var_dump(0=="php");
var_dump(0=="");
var_dump(NULL==false);
var_dump(""==false);
var_dump(array()==false);
var_dump(array()==NULL);
?>
解法:
构造语句
?num == 1a
9. alert
审题:
不停的弹窗
解法:
阻止弹窗,(抓包)
查看源代码
最后一段代码有点奇怪(是unicode格式的字符)
进行unicod转码为ASCII码
得到flag
10. web7
审题:
不停的刷新图片,其中一张图片的源代码里面有flag
解法:
常规操作:
利用burpsuit抓包,不断重放(sendtorepeter),知道到有flag的那张
其他花里胡哨解法:
截图;
禁止js,手动刷新;
开源码,一次次刷新;
11. eval
审题:
文件包含
<?php
include "flag.php";
$a = @$_REQUEST['hello']; //变量名字出现
eval( "var_dump($a);");
show_source(__FILE__); //操作解释,file<=>文件名
?>
解法:
构造url:?hello=show_source('flag.php')
12.变量1
审题
flag In the variable !
<?php
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args)){
die("args error!");
}
eval("var_dump($$args);");
}
?>
开始是像WEB8一样想,但是不对,
解题
构造url:?args=GLOBALS
$GLOBALS可以调用全局作用域中的所有变量,就可以看到flag
13.头等舱
审题
头等舱
点开环境,真·什么都没有
头等舱头等舱----头
解题
火狐F12,网络,消息头,里有flag
14.网站被黑了
审题
描述:网站被黑了 黑客会不会留下后门
解题
①目录扫描–御剑扫描
(赶时间就:)
构造url:ip+/shell.php
进入登陆界面
②弱口令爆破–burpsuite
bp:抓包,发送到intruder模块,进行爆破
15.本地管理员
审题
题目:本地管理员
进去是管理员系统
通常:用户名为admin,所以猜是admin
解题
密码:test123
解法1:F12,最下面注释,有个代码,进行base64解码可得
解法2:bp爆破密码
但是输入账号密码,得到ip被禁止的消息
本地管理员,本地
bp抓包,发到repeter模块,构造Header头
X-Forwarded-For:127.0.0.1
点击Go
得到flag
16.源代码
审题
看看源代码?
那就看嘛
解题
F12,查看源码,有个script脚本中间,有一堆url,拉出去,解码,最后一行说,拼接
拼接在一起,得到一个假flag,放到框里,submit
得到真flag
17.文件包含
审题
click me?no
(点击)
index.php
(url:http://114.67.246.176:17169/index.php?file=show.php)
解题
文件包含漏洞++PHP协议
PHP://协议
在CTF中经常使用的是
php://filter用于读取源码
php://input用于执行php代码。
构造payload:http://114.67.246.176:17169/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
参考文档:php:// 协议
18.好像需要密码
审题
需要五位数密码
解题
弱密码爆破
使用burpsuite爆破 发包到intruder模块
经过爆破
得到密码
输入密码,得到flag
19.备份是个好习惯
审题
备份是个好习惯
d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e
解题
御剑扫描目录后台(未扫到可能未更新字典)
得到/index.phph.bak
保存文件,用记事本打开
代码审计
<?php
include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
加密的key1等于加密的key2并且不加密的key不等于key2
MD5弱类型碰撞,使用数组绕过即可(学嘛)
对key进行了一次绕过因此构造双重变量:kkeyey1和kkeyey2
最终payload:?kekeyy1[]=1&kekeyy2[]=2(即null==null)
20.成绩查询
审题
sql注入
解题
1.sqlmap工具注入
Bp抓包,复制内容为1.txt文件,移动到kali的家目录下
打开sqlmap
sqlmap -r “1.txt” -dump
直接爆破出flag
也可以按步骤一步步爆破
2.手注
21.秋名山车神(Py)
审题
解题
22.速度要快(Py)
审题
解题
23.cookies(Py)
审题
解题
24.web21(PHP)
审题
解题
25.web22(+命令执行)
审题
解题
26.web23(正则)
审题
解题
27.web24(PHP)
审题
解题
28.web25
审题
解题
29.web26
审题
解题
30.web27
审题
解题