
BUUCTF
显哥无敌
南京赵显
展开
-
BUUCTF WEB PICKLE STORE
众所周知,buuctf靶场经历了内网K8S改造,导致以前的小号的内网靶机的方法出了问题,我也疑惑了很久,该怎么去用这台不知道公网ip的靶机。后来我想明白了,给的是apache2的公网ip,那就直接外带啊,果然成功了,哈哈。看着像base64,解码一下,发现一个标志:anti_tamper_hmac。无法逆向的hmac,那么结合题目的pickle,八九不离十的猜是反序列化。这一题是一个简单的python反序列化,简单的写个脚本就好,没啥好说的。关于pickle的指令解析可以看这个师傅的。原创 2022-09-30 17:48:35 · 399 阅读 · 0 评论 -
BUUCTF WEB filejava
简单总结一下,上传的xlsx文件在解析时会调动到[Content_Types].xml的恶意代码,从而去vps上执行含有恶意xxe的file.dtd文件,而这个文件的执行结果就是把受害机。由于扫出来是tomcat,做过java web业务的都知道最重要的一个配置文件是WEB-INF里面的web.xml文件,说他是万物之祖也不为过。先说一下,kali尽量不要更新到python 3.10,否则好多工具都不能用了。这题提示是java题目,上来先是一个上传窗口,尝试文件上传直接写马,发现不行。原创 2022-09-30 11:19:05 · 1300 阅读 · 0 评论 -
Dest0g3 520迎新赛 WEB EasySSTI
SSTI原创 2022-06-06 10:54:22 · 691 阅读 · 1 评论 -
BUUCTF WEB 2020新春红包题1
还是太菜了,继续更吧。发现自己反序列化这块挺菜的,找个题目来看看吧,明显的看到了serialize,还有file_put_contents,看来是序列化写shell无疑了<?phperror_reporting(0);class A { protected $store; protected $key; protected $expire; public function __construct($store, $key = 'flysystem', $原创 2022-05-31 10:24:06 · 415 阅读 · 0 评论 -
BUUCTF WEB Node Game
之前没学过node代码,这题上来给了源码,先简单过一遍源码//调用若干系统模块//express用于构建web app应用var express = require('express');var app = express();//filesystemvar fs = require('fs');//用于处理文件/目录路径的一个内置模块var path = require('path');//用于创建一个web服务器实例var http = require('http');//模板引擎原创 2022-05-18 11:34:11 · 466 阅读 · 0 评论 -
BUUCTF WEB COOKIE STORE
emmmm…自从buuctf变为K8S管理以后,靶场就出现了各种非预期解,这题就是典型了吧我第一遍刷的时候这题还涉及到反序列化,现在属于是纯粹的一个base64编码,改cookie题了ok,废话少说,打开场景,发现买flag的逻辑,抓包,发现买三种产品的cookie不同,cookie里的session像是base64编码解码,发现直接是money和history。。。。。。。。。。。。我直接改了不成嘛补一个这题原先的考点,pickle反序列化和__reduce__魔法方法(更正一下,我好像和pick原创 2022-05-13 10:51:10 · 232 阅读 · 0 评论 -
BUUCTF WEB CV Maker
这题其实挺没意思的,没意思到简简单单的一个图片马而已本来看见注册逻辑,还想想sql注入啥的,发现登陆以后连个回显都没有,也没找到啥判断逻辑的地方,注个锤子随便注册个账号,登录,发现有上传头像功能,这不传个shell上去玩玩?好吧,这题就是个文件上传题原生的php上传,提示exif_imagetype not image,不是图片格式,加一个GIF89a直接过,连文件类型过滤都没有的在原来页面里找到上传地址,蚁剑直接连,成功拿到flag参考视频链接:https://www.bilibili.com/原创 2022-05-11 10:46:42 · 294 阅读 · 0 评论 -
BUUCTF WEB TRUE XML COOKBOOK
由于某种神秘的不可抗力,很久没更新了,emmmm。以后还是勤快一点吧言归正转,这题都已经把提示给到脸上了,xml,这不试试xml注入?经典登录界面,抓包就可以发现数据事宜xml形式的传往后台的X-Requested-With: XMLHttpRequest依旧推荐https://xz.aliyun.com/t/6887#toc-5构造倒是没有多难,但这题最大的坑点在于flag不是在本地的,所以他是一个内网题。。。。一个小经验:由于BUUCTF转用了K8S管理,他的靶机容器是随机在80,81两个网原创 2022-05-09 15:02:52 · 615 阅读 · 0 评论 -
BUUCTF WEB Ezsqli
继续刷题,comment之前在攻防世界刷过了,就不刷了。从题目上我们就知道这一题是个sql注入题打开场景,我们发现依旧的儒雅随和一个查询框,那么就是要硬搞了呗经查询1,2是两条有效数字,0和其他的都是非法输入1+1成功回显2,下面就是过滤字判断既然是布尔型的回显,先试试0^1,嗯,异或符给我们留下了布尔类型查用的substr,ascii先试试0^(ascii(substr(‘hello’,1,1))>1)1^(ascii(substr(‘hello’,1,1))>1)成功回显,原创 2022-04-01 11:52:58 · 5937 阅读 · 2 评论 -
BUUCTF WEB zhuanxv
这题和攻防世界是一样的,但是由于BUUCTF靶场的设置问题,导致很多人脚本跑不出来,具体可以看这篇https://blog.youkuaiyun.com/qq_41696858/article/details/120156854对脚本做个简单修正import requestsimport times = requests.session()list=[6,7,8,9,10,11,12,13,15,16,17,18,20,21,22,23,25,26,27,28,30,31,32,33,34,35,36,37原创 2022-03-25 10:19:47 · 722 阅读 · 1 评论 -
BUUCTF WEB WELCOME TO THE EARTH
日常刷题,打开场景,发现图片过了一段时间会变,看来有js代码emmm,这题属于是送分题,找路径啥的属实没意思,不妨直接看最后的python脚本呢?看页面内容<!DOCTYPE html><html> <head> <title>Welcome to Earth</title> </head> <body> <h1>AMBUSH!</h1> <p>原创 2022-03-21 12:14:28 · 4586 阅读 · 0 评论 -
BUUCTF WEB ESAYLOGIN
登录注册首想二次注入,但是注册成功以后发现连个回显点都没有,所以这条路就断了然后随便注册一个账号,有个getflag按钮,点击发现权限不够。这里就想到要伪造身份绕过了审计注册页面源码,发现/static/js/app.js目录看看,发现hint/** * 或许该用 koa-static 来处理静态文件 * 路径该怎么配置?不管了先填个根目录XD */百度一下,看看koa是个啥,原来是个nodejs的web框架function login() { const username原创 2022-03-15 11:21:22 · 5656 阅读 · 0 评论 -
BUUCTF WEB SSRF ME
这题没啥好说的,简简单单一个命令执行漏洞10.244.80.46<?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $http_x_headers[0]; } echo $_SERVER["REMOTE_AD原创 2022-03-11 14:57:26 · 3362 阅读 · 0 评论 -
BUUCTF WEB EASYSQL
sql注入题看到login和register的双逻辑,本能反应往着二次注入里想,属于是条件反射了现在register.php写个小脚本测试一下关键字import requestsimport timesql_char = ['select', 'union', 'and', 'or', 'sleep', 'where', 'from', 'limit', 'group', 'by', 'like', 'prepare', 'a原创 2022-03-10 15:00:21 · 2647 阅读 · 0 评论 -
BUUCTF WEB easyweb
这题考的是sql注入,主要是有两个过滤函数,然后两个过滤函数拼接过后产生了漏洞审计页面源码,没发现啥好玩的,那就扫目录吧dirsearch -u http://b53e32cc-9153-409a-a5cc-d89dafd9053b.node4.buuoj.cn:81/ -s 1 -t 1扫出来一个robots.txt查看User-agent: *Disallow: *.php.bak先看index.php的代码emmmm,失败了,那么看看index.php页面有没有包含点其他页面user原创 2022-03-09 16:56:57 · 666 阅读 · 0 评论 -
BUUCTF WEB CyperPunk
打开场景,查看源码,发现hint<!--?file=?-->于是考虑文件读取漏洞尝试?file=php://filter/convert.base64-encode/reosurce=index.php成功回显PD9waHAKCmluaV9zZXQoJ29wZW5fYmFzZWRpcicsICcvdmFyL3d3dy9odG1sLycpOwoKLy8gJGZpbGUgPSAkX0dFVFsiZmlsZSJdOwokZmlsZSA9IChpc3NldCgkX0dFVFsnZmlsZSd原创 2022-03-08 11:51:53 · 604 阅读 · 0 评论 -
BUUCTF WEB flasklight
既然是flask框架,第一个想到的就是SSTI模板注入之前也做过很多题了,审计源码,看到了 <!-- Parameter Name: search --> <!-- Method: GET -->带过去的是get的search参数,这页面有查询回显那么就拿基础payload试一下?search={{7*7}}成功回显49,验证完毕,下面就是找过滤和绕过了先看config?search={{config.items()}}没啥好用的,那就从’'里面一个一个往原创 2022-03-07 10:47:32 · 680 阅读 · 0 评论 -
BUUCTF WEB DROPBOX
这题考的是phar文件的应用,说到底是考的反序列化洞,我们不能一直指望有UNSERIALIZE这种明显的反序列化洞,于是phar就是一种替代选择phar文件的细节可以看这一篇文章https://xz.aliyun.com/t/2715关于这题的wp个人觉得这篇写的很详细https://www.jianshu.com/p/5b91e0b7f3ac理清楚了应该不是啥难事简单来说phar就是一种压缩文件格式,因此使用phar的先决条件是得有文件上传功能phar漏洞的触发条件或者说出触发代码在mani原创 2022-03-06 15:34:26 · 556 阅读 · 0 评论 -
BUUCTF WEB 枯燥的抽奖1
代码审计,打开页面,就发现了$(document).ready(function(){ $("#div1").load("check.php #p1"); $(".close").click(function(){ $("#myAlert").hide(); }); $("#button1").click(function(){ $("#myAlert").hide(); guess=$("input").va原创 2022-03-04 09:57:13 · 344 阅读 · 0 评论 -
BUUCTF WEB Can You Guess it?
代码审计,依旧有我们的老朋友preg_match,不会还有一个新朋友basename()先看源码<?phpinclude 'config.php'; // FLAG is defined in config.phpif (preg_match('/config\.php\/*$/i', $_SERVER['PHP_SELF'])) { exit("I don't know what you are thinking, but I won't let you read it :)");}原创 2022-03-03 09:57:18 · 438 阅读 · 0 评论 -
BUUCTF WEBRCESERVICE
首先这题没源码是万万做不出来的,反正我是不知道这源码从哪来的先上源码<?phpputenv('PATH=/home/rceservice/jail');if (isset($_REQUEST['cmd'])) { $json = $_REQUEST['cmd']; if (!is_string($json)) { echo 'Hacking attempt detected<br/><br/>'; } elseif (preg_match('/原创 2022-03-02 10:22:17 · 594 阅读 · 0 评论 -
BUUCTF WEB 颜值成绩查询
一个查询窗口,很直观的感受是SQL注入,本着这个思路,测试0,1,2,3,4,5发现0和5都是doesn’t exists,这里就可以利用布尔盲注来进行0,1的判断,下面就是过滤字的判断由于只是布尔判断,所以没有办法判断是单引号闭合还是双引号闭合,or和and也不能判断出来,空格被过滤了是在后面爆表名的时候判断出来的在尝试1^1的时候发现回显doesn’t exists,那么这个payload就是没问题的,下面就是判断过程了1^if(length(database())>0,1,0)回显doe原创 2022-03-01 10:35:21 · 312 阅读 · 0 评论 -
BUUCTF WEB KOOKIE+RCE ME
继续更新kookie题目提示了cookie,那么就抓包看看喽以admin进行登录,发现是以明文发送的username和password尝试添加cookie条目,username=admin,登陆成功,拿到flag。。。。。最简单的cookie注入rce me这题简单粗暴的源码审计,就是不用数字字母写一个shell,长度不超过40那么百度了以后,发现有两个绕过思路,取反或者异或,其实就是利用计算机编码的知识,在前面的if判断阶段,并不会进行字符编码运算以取反为例,也就是说if循环看到的是取反符原创 2022-02-28 09:53:08 · 661 阅读 · 0 评论 -
BUUCTF WEB 套娃
前面的几题攻防世界也有,而且buuctf换成k8s管理以后和纯原生的docker环境又不一样了,有些地方我百度了也没百度到。。。。打开场景,看见一段被注释掉的源码<!--//1st$query = $_SERVER['QUERY_STRING']; if( substr_count($query, '_') !== 0 || substr_count($query, '%5f') != 0 ){ die('Y0u are So cutE!');} if($_GET['b_u_p原创 2022-01-28 11:13:02 · 3231 阅读 · 0 评论 -
BUUCTF WEB easysearch
由于buuctf独特的防扫机制,建议加上 -s -t参数,等个10分钟查看index.php.swp查看源码<?php ob_start(); function get_hash(){ $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-'; $random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[原创 2022-01-07 11:19:49 · 2026 阅读 · 0 评论 -
攻防世界 WEB bilibili
打开场景,我们就知道这题已经训练了两年,非常的唱跳rap啊咱就说hint:ikun们冲鸭,一定要买到lv6!!!审计页面源码,发现lv几都是png图片,不妨试试lv6在哪个页面点击下一页,url变为/shop?page=2先爆破一下页数,page=1000,没有下一页按钮,写脚本吧import requestsurl = "http://111.200.241.244:50074/shop?page="for i in range(1,5000): response=request原创 2022-01-05 15:38:47 · 3115 阅读 · 0 评论 -
BUUCTF WEB PIAPIAPIA1
打开场景,是一个登录界面,尝试SQL注入未果,审计页面不行,那就扫目录吧由于BUUCTF自带的防扫机制,所以不要指望很快的得到扫描结果dirsearch -u http://9a2c0157-a94f-4247-8539-ea25ed3f0b21.node4.buuoj.cn:81/ -t 7 -s 1扫了大概有十分钟。。。。。。。。扫出来config.php,register.php,login.php,/static目录,/upload目录,www.zip行了,那就源码审计吧config.原创 2022-01-04 11:00:28 · 2104 阅读 · 0 评论 -
BUUCTF WEB readlezphp1
打开场景,一个窟窿头,太哈人了,源码审计吧发现一个奇怪的a标签,time.php?source访问一下,果然是源码审计 <?php#error_reporting(0);class HelloPhp{ public $a; public $b; public function __construct(){ $this->a = "Y-m-d h:i:s"; $this->b = "date"; } pu原创 2021-12-31 09:59:11 · 541 阅读 · 0 评论 -
buuctf web finalsql
没啥好说的,经典爆破,随便点一个数字,点1,会跳转到search.php?id=1把1改成0,会报错error,经典布尔盲注,buuctf,原生爆破想都不要想,二分查找吧先手动测试payload?id=1^1 errorpayload ?id=1^0 NO! Not this! Click others~~~测试成功,脚本爆破import reimport requestsimport stringimport timeurl = "http://a3a385c8-781e-4ee7-原创 2021-12-31 09:33:13 · 451 阅读 · 0 评论 -
BUUCTF WEB Ezpop
继续简单粗暴的源码审计,看见这么多魔法方法,就知道反序列化没跑了Welcome to index.php<?php//flag is in flag.php//WTF IS THIS?//Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95//And Crack It!class Modifier {原创 2021-12-30 11:24:53 · 634 阅读 · 0 评论 -
BUUCTF WEB PYTHONGINX1
先验知识 NGINX配置文件地址:配置文件存放目录:/etc/nginx主配置文件:/etc/nginx/conf/nginx.conf管理脚本:/usr/lib64/systemd/system/nginx.service模块:/usr/lisb64/nginx/modules应用程序:/usr/sbin/nginx程序默认存放位置:/usr/share/nginx/html日志默认存放位置:/var/log/nginx配置文件目录为:/usr/local/nginx/conf/nginx原创 2021-12-29 14:06:46 · 1324 阅读 · 0 评论 -
BUUCTF WEB PYWebsite1
这题没啥好说的,经典买flag,在页面源码里找到了个这 function enc(code){ hash = hex_md5(code); return hash; } function validate(){ var code = document.getElementById("vcode").value; if (code != ""){ if(hex_md5(code) == "0cd4da0223c0b280829d原创 2021-12-28 10:49:46 · 525 阅读 · 0 评论 -
BUUCTF WEB NMAP
经典回显关了的NMAP,和之前做过的一台hack the box靶机里面的某一台比较像那么就是合理利用 -oN的问题了,直接输出flag就可以,但是你一定要连shell也无所谓,多一步连接工作罢了127.0.0.1 正常回显,-iL代表查找目标主机中的相关文件下面就是尝试它如何过滤的直接输出到flag payload:127.0.0.1' -iL /flag -oN flag '怎么说呢,我们在127.0.0.1 | ls的时候他把我们的|转义了,那么肯定是有过滤机制的其中这两个单引号是用来绕过原创 2021-12-28 10:41:06 · 426 阅读 · 0 评论 -
BUUCTF WEB SHRINE
依然是经典代码审计:import flaskimport osapp = flask.Flask(__name__) app.config['FLAG'] = os.environ.pop('FLAG')@ app.route('/') def index(): return open(__file__).read()@ app.route('/shrine/') def shrine(shrine): def safe_jinja(s): s = s.replace(原创 2021-12-23 09:43:15 · 452 阅读 · 0 评论 -
BUUCTF WEB SSRF ME
没废话,flask代码审计,干就完了#! /usr/bin/env python#encoding=utf-8from flask import Flaskfrom flask import requestimport socketimport hashlibimport urllibimport sysimport osimport jsonreload(sys)sys.setdefaultencoding('latin1')app = Flask(__name__)sec原创 2021-12-22 14:58:47 · 923 阅读 · 0 评论 -
BUUCTF WEB 朴实无华1
打开场景,一堆乱码,让我们不要看headers,那不用说了,肯定hint在headers里面,burp抓包,当前页面headers没有啥的那就扫目录吧,扫出来一个robots.txt,进有一个fAke_flaaaaag.php,很明显是假的,我们再看headers头还是没有啥有用的访问/fAke_flaaaaag.php,这次抓包发现一个look at me头,终于发现了正确的flag地址:/fl4g.php什么,这就满足了?naive!访问下来是一堆源码,代码审计<?phpheader(原创 2021-12-21 11:09:12 · 248 阅读 · 0 评论 -
BUUCTF WEB unicorn_shop
这题考的是编码的转换,或者说是编码漏洞,utf-8和unicode之间的差异源码:https://github.com/Tiaonmmn/asis_2019_unicorn_shop需要注意的文件:https://github.com/Tiaonmmn/asis_2019_unicorn_shop/blob/master/src/sshop/views/Shop.py关注他的price哪里来的,在post方法里price = urllib.unquote(price).decode(‘utf-8’原创 2021-12-20 10:05:02 · 974 阅读 · 0 评论 -
buuctf web cookie is so subtle
题目给出了hint,这题的主要利用方法在cookie里,在页面里的hint.php也让我们看看cookie提交一个1,发现cookie里多了一个user=1尝试user=admin,没用,直接回显。Hello,admin考虑一下模板注入{{7*7}},回显,hello,49到这这题就基本上结束了,查询到后端技术是PHP,查询了一下,php模板框架,常用的两种smarty或者twig尝试{{$smarty.version}},失败,尝试twig注入的时候,发现成功回显payload:{{_self原创 2021-12-19 21:39:27 · 1019 阅读 · 0 评论 -
BUUCTF WEB FAKE XML COOKBOOK
没啥好说的,一个XXE注入的简单利用漏洞利用方式看:https://xz.aliyun.com/t/6887#toc-5基本格式<?xml version="1.0" encoding="utf-8"?><!DOCTYPE a [<!ENTITY file SYSTEM "file:///d://qwzf.txt">]><xml><xxe>&file;</xxe></xml>抓包抓到的是<原创 2021-12-18 22:31:19 · 339 阅读 · 0 评论 -
BUUCTF WEB easy_web
打开场景,发现一个img参数和cmd命令,结合上一题的思路,也猜是任意文件读取?img这东西看着就像base64,解码一次,得到一个等号,没跑了,再次base64解码,得到一个3535352e706e67,像是一个16进制数转字符串看看555.png好了,大功告成,读源码去喽index.php转16进制696e6465782e70687016进制一次base64编码Njk2ZTY0NjU3ODJlNzA2ODcw再次base64TmprMlpUWTBOalUzT0RKbE56QTJPRGN原创 2021-12-17 11:24:36 · 1056 阅读 · 0 评论