第一次CTF比赛总结

第一次参加CTF比赛,虽然只是个校赛qaq.
但还是根据题解学到了很多东西。

MISC

1.png常用隐写 LSB隐写,大概就是像素改变一位,人看不出来具体的变化。
2.流量分析,
1.对于后台的登录一定是有一个302进行跳转,渗透时分析 post流量。然后word隐写,word自带隐藏隐藏文字功能。或者直接改word后缀,使得改为压缩包,直接分析dom文档,得到隐藏内容。
3.音频隐写,mp3stego,steghide等软件进提取。
4.内存取证,一般给vmem文件,通过Volatility取证工具进行分析,对可疑文件进行dump。然后后面看不太懂,学到NTLM加密为windows密码加密。
5.学习知识点,foremost 直接进行分离,binwalk -e 提取找到的任何形式的文件。

web

1.ssti模板注入。
SSTI (Server-Side Template Injection)服务器端模板注入
当前使用的一些框架,比如python的flask,php的tp,java的spring等一般都采用成熟的的MVC的模式,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲染展示给用户。
漏洞成因就是服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。
凡是使用模板的地方都可能会出现 SSTI 的问题,SSTI 不属于任何一种语言,沙盒绕过也不是,沙盒绕过只是由于模板引擎发现了很大的安全漏洞,然后模板引擎设计出来的一种防护机制,不允许使用没有定义或者声明的模块,这适用于所有的模板引擎。剩下的暂时不太懂qaq。后续完善
2.常用命令分隔符。
远程代码执行和bypass

1
2
3
4
5
; 执行完当前指令后执行下一条指令
| 管道符
&& 左侧命令执行成功后,执行右侧命令
%0a url换行符
%0a url回车符

3.sql 注入
admin’ or 1 #

1
2
3
4
$username = $_POST['username'];
$password = md5($_POST['password']);
$sql = "select * from users where username='$username' and password='$password'";
$result = mysql_query($sql, $this->conn);

实际上的代码就变成了select * from users where username=’admin’ or 1#’ and password=’$password’ 。由于#后的代码被注释了,实际上执行的查询语句就是select * from users where username=’admin’ or 1。条件恒真,以管理员账号登录后台。
扩展名不允许可以改包或者 改后缀名或者一起改绕过,如php,Php,phP等,还可以改包时改后缀名。
4.访问 /www.zip 可以下载网站源码备份,这是网站常见源码备份名
Crypto:
1.维吉尼亚密码加密
2.个算法只需要前624个随机数,就可以恢复前624个state,就可以预测此后生成的随机数。


第一次CTF比赛总结
http://jty-123.github.io/2022/04/13/第一次CTF比赛总结/
作者
Jty
发布于
2022年4月13日
许可协议