[HCTF 2018]WarmUp 1 对应 CVE-2018-12613:
总结:文件包含并且可以目录穿越,在本地复现时如果服务器为windows会报错,原因是windows文件命名规则中规定了文件名不能出现特殊字符\ / : * ? " < > | 在服务器为linux时则不会报错;
[强网杯 2019]随便注 1:
考察堆查询注入,记录在sql注入总结中;
[ACTF2020 新生赛]Include 1:
考察文件包含,记录在文件包含漏洞中;
[护网杯 2018]easy_tornado 1:
考察ssti模板注入,tornado模板的特性handler.settings利用;
[GXYCTF2019]Ping Ping Ping:
windows命令执行,考察常见绕过方式;
[RoarCTF 2019]Easy Calc 1:
总结:php字符串解析漏洞
PHP在接受参数名时,需要将怪异的字符串转换为一个有效的变量名,因此当进行解析时,它会做两件事:1、删除空白符;2、将某些字符转换为下划线(包括空格)
经测试,first loop里的%2b在实际使用时也会出现无法绕过的情况,测试版本为php 7.3.4 与 5.3.29
对于流量监测检测性的waf具有很好的绕过功能;相关漏洞:CVE-2018-7600
[极客大挑战 2019]Upload:
考察文件上传漏洞绕过,记录在文件上传漏洞中;
[HCTF 2018]admin:
python代码审计,知识点flask session欺骗,在config.py中找到SECRET_KEY使用session加密脚本即可加密;
方法二:使用Unicode欺骗,利用nodeprep.prepare的漏洞,先将Unicode字符转为大写再转为小写;
方法三:条件竞争,使登录进程和改密码进程进行竞争;
[SUCTF 2019]CheckIn:
文件上传漏洞,考察.user.ini的利用;
.user.ini的利用条件如下:服务器脚本语言为PHP、服务器使用CGI/FastCGI模式、上传目录下要有可执行的php文件;
利用.user.ini生成后门参考p神文章
[极客大挑战 2019]BuyFlag:
strcmp漏洞,存在于php5.3之前;strcmp(str1,str2):如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。但如当传入非字符串的参数,该函数会返回0;
[BJDCTF2020]Easy MD5:
知识点:md5($str,true)注入,当md5后的hex转换成字符串后如果包含 ‘or’ 这样的字符串就可以完成注入;
例子:ffifdyop
[CISCN2019 华北赛区 Day2 Web1]Hack World:
告诉了需要查询的表与列,使用异或注入,二分法盲注脚本;由于BUU平台访问过多会Request 429 所以每次for循环中需要sleep(1);
[网鼎杯 2018]Fakebook:
知识点:SSRF漏洞利用;
由于对可以包含的blog地址进行了过滤,因此需要结合sql注入将我们进行包含的地址进行注入,在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据,因此可以使用payload:-1/**/union/**/select/**/1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:4:"test";s:3:"age";i:123;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'绕过对file://伪协议的过滤;
网上还看到一篇非预期解,师傅直接使用load_file读取出来flag,使用elt(ord(substr(load_file('/var/www/html/flag.php'),?,1))>?,1)直接读取到了flag,所以在渗透或者做题的过程中不能总是沉浸在自己的思维定势中。
[极客大挑战 2019]HardSQL:
过滤了很多关键字,考察报错注入;
常见十种报错注入;
[GXYCTF2019]BabySQli:
比较有意思,需要猜测后端校验密码语句,依然通过联合查询查询不存在的数据,构造一个虚拟的数据;
[网鼎杯 2020 青龙组]AreUSerialz:
php反序列化代码审计,考察知识点:php7.1+对属性类型不敏感,直接用public替换protected绕过is_valid函数,op = 2弱类型绕过_destruct()
[BJDCTF 2nd]fake google:
ssti注入,flask模板,没什么过滤,直接注;
[强网杯 2019]高明的黑客:
解压www.tar.gz,好家伙3002个文件,随便打开一个有很多$_GET和$_POST,写脚本一个一个检测,刚好学习了一波Python多线程编写;
[GYCTF2020]Blacklist:
考察堆叠注入;HANDLER ... OPEN语句打开一个表,使其可以使用后续HANDLER ... READ语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER ... CLOSE或会话终止之前不会关闭;
[RoarCTF 2019]Easy Java:
对WEB/INF的讲解;
本题考查java基础知识,需要对java容器和项目存放位置比较了解,通过本题也发现对几大语言的容器,项目环境还需加深理解!
[BUUCTF 2018]Online Tool:
考察知识点:escapeshellcmd+escapeshellarg,和对Nmap的使用,nmap -oG可以将扫描结果和命令写入文件总;
[GKCTF2020]cve版签到:
考察get_headers()漏洞的利用:PHP 7.2.29之前的7.2.x版本、7.3.16之前的7.3.x版本和7.4.4之前的7.4.x版本中的‘get_headers()’函数存在安全漏洞。攻击者可利用该漏洞造成信息泄露。
在get_headers()中会将url参数中的零字符(%00)之后的内容截断;
[GXYCTF2019]禁止套娃:
考察知识点:.git泄露和无参rce;
对参数的正则和p神的代码审计题目差不多,preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])
但是还多了!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp']);因此也就不能使用getcwd、hex2bin等方法;
本题的两种无参rce方法:exp=show_source(session_id(session_start()));
exp=show_source(next(array_reverse(scandir(pos(localeconv())))))