#基础要求

Mysql,Oracle,Mssql,Access等SQL语法的细微区别
PHP,Java,JS,Ruby,Python,Lua等编程语言特性
Tomcat,IIS,Apache,Nginx,WebLogic,JBoss,Jetty等Web服务器特性
-举例
Access 查询数据 偏移注入 跨库查询

#基础

一、爆破,包括包括md5、爆破随机数、验证码识别等
二、绕WAF,包括花式绕Mysql、绕文件读取关键词检测之类拦截
三、花式玩弄几个PHP特性,包括弱类型,strpos和===,反序列化+destruct、\0截断、iconv截断、
四、密码题,包括hash长度扩展、异或、移位加密各种变形、32位随机数过小
五、各种找源码技巧,包括git、svn、xxx.php.swp、www.(zip|tar.gz|rar|7z)、xxx.php.bak、
六、文件上传,包括花式文件后缀 .php345 .inc .phtml .phpt .phps、各种文件内容检测<?php <? <% <script language=php>、花式解析漏洞、
七、Mysql类型差异,包括和PHP弱类型类似的特性,0x、0b、1e之类,varchar和integer相互转换
八、open_basedir、disable_functions花式绕过技巧,包括dl、mail、imagick、bash漏洞、DirectoryIterator及各种二进制选手插足的方法
九、条件竞争,包括竞争删除前生成shell、竞争数据库无锁多扣钱
十、社工,包括花式查社工库、微博、QQ签名、whois
十一、windows特性,包括短文件名、IIS解析漏洞、NTFS文件系统通配符、::$DATA,冒号截断
十二、SSRF,包括花式探测端口,302跳转、花式协议利用、gophar直接取shell等
十三、XSS,各种浏览器auditor绕过、富文本过滤黑白名单绕过、flash xss、CSP绕过
十四、XXE,各种XML存在地方(rss/word/流媒体)、各种XXE利用方法(SSRF、文件读取)
十五、协议,花式IP伪造 X-Forwarded-For/X-Client-IP/X-Real-IP/CDN-Src-IP、花式改UA,花式藏FLAG、花式分析数据包

#脑洞汇总

源代码

robot.txt
comment
vim_swap_file

.pyc

.DS_Store
.git
.svn
bak file

waf

字符替换空型waf
特殊字符(串)拦截型waf

#CTF Trick

PHP弱类型

序列化/反序列化

XSS+CSRF+SSRF+RCE+Upload

源码审计

CSRF的利用

XSS

-基础弹窗

1
2
<script>alert("XSS")</script>
<img src=1 onerror=alert("XSS")>

-总结

1
2
1.输入在标签间:测试<>是否被过滤
2.在JS标签内:保证JS语法的正确性(控制俩处输入且\可以用,存在宽字节)

-分类
1.反射型XSS

2.存储型XSS
修改参数,提交后查看页面源代码,寻找输出位置
例:

1
2
输出在<b>标签中 不需要闭合 直接XSS
input的value标签里面 “>+XSS

tips:选择框可以BP改 注意每一个Post参数
转义尖括号 “闭合 标签内构造属性
例:
1)href属性 构造JS伪协议javascript:alert(docment.dcmain)
2)Domain被过滤javascript:alert(docment.&#100,&#111.&#109.&#97.&#105.&#110)
3)把script/on/style/大小写过滤:<iframe src="data:text/html;base64,......."></iframe>(创建子窗口在父窗口弹窗)
4)><均被转义 输出在JS的字符串当中 可以使用JS字符串的编码方式/unicode编码/八进制编码
5)输出在注释里 payload:换行+%0Aalert(1);//
6)反斜杠干掉双引号 中间变成一串字符串;用//注释掉多余的东西;=的优先级问题可以==替代;function XXX(){}优先级最高 防止提示未定义;空格用/**/替代
7)换行问题 用/链接字符串 加%c0吃掉转义符
*尽量少用//注释 \转义

3.Dom-XSS

4.跨域问题:
-同源:协议、域名、端口(默认80)相同
-非同源:cookie/LocalStorage/IndexDB无法读取 DOM无法获得 AJAX请求不能发送
-二级域名相同(父子、兄弟域:允许通过设置document.domain共享cookie
-跨域请求:JSONP WebSoket CORS
-JSONP注入:通过添加一个<script>元素,通过src属性向服务器请求json数据,服务器将数据放在一个指定名字的回调函数返回 foo({“ip”:”8.8.8.8 “})(不造是啥但能执行 )callback/jsonp/…=.(函数名)..的API
-防御:校验referer(但可从HTTPS向http发请求或在src中用data:base64)
callback=alert(1);//有反射型注入
-CORS:允许浏览器向不同源服务器发出任何请求
-简单请求:head/get/post
-加origin头:如果可以会回acess-control-allow-origin
双方withCredentials:true且acess-control-allow-origin不为*才能接受cookie
-预检请求
-回旋镖
-穿甲伤害

CSRF

html css flash

SQLi

各种绕过。。

文件包含和文件上传

伪协议
各种校验
.htaccess文件
变量与函数:一切输入都是有害的,一切进入函数的变量都是有害的
参数传递
可控变量
敏感功能点
通读代码

变量覆盖

危险函数

代码审计

常见功能点漏洞

登陆认证功能
SQL注入
Cookie认证问题
危险函数
pars_str()
import_request_variables

变量覆盖

工具
BP
Sqlmap

union注入

有回显
猜解字段数目 limit a,b
最方便

报错注入

boolean盲注

写脚本

截取字符串 left substr mid regexp if

Timing盲注

无回显
效率低

文件读写

select LOADFILE(‘/etc/passwd’);之类的写shell进去也可以

waf

双写关键字 seselectlect OorR
大小写
编码绕过(直接认识16进制)
变换姿势 <—> || && 空格 select(username)from(admin) 科学计数法绕过 where username=1e1union select in,between,like access中info=dlookup()
特殊字符 /**/``内联注释``%00``% 反引号

写脚本

http://58.154.33.13:8003/?order=if((select(mid(flag,1,2))from(flag)),name,price
)

1
2
3
‘a’ 11000110
$b 0000001 & 1一位一位向前移
$c 0000000 根据这个是不是1回显判断原来的

#杂技

二次注入
宽子节注入
Access偏移注入
万能密码
Mongodb注入
隐蔽注入
Mysql过长截断

#文件包含

LFI
读取敏感文件
包含一句话木马getshell
包含日志文件getshell
读取页面源代码
/about.php?f=php://filter/convert.base64-encode/resource=index.php