![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CTF刷题
2021!
这个作者很懒,什么都没留下…
展开
-
phar://、zip://伪协议进行shell上传
phar://环境:可上传png、jpg首先写一个一句话木马shell.php接着压缩成zip文件。将后缀改为png文件进行上传,上传文件后使用shell工具进行连接。http://localhost/?url=phar://uploads/63e93ffe53f03e93bb0a0249152d243874e31c9b.png/shellzip://环境:可上传png、zip首先写一个一句话木马shell.php接着压缩成zip文件。直接上传zip文件,然后使用shell工具进行连接。htt原创 2021-06-18 14:55:23 · 1235 阅读 · 0 评论 -
XML外部实体注入;XXE漏洞;XXE有回显注入;XXE无回显注入;Blind XXE;绕过方式总结
漏洞原理XE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可以加载恶意外部文件,造成文件读取、命令执行、内网端口扫描。XXE漏洞触发的点往往是可以上传XML文件的位置,没有对上传的XML文件进行过滤,导致可上传恶意XML文件环境搭建地址:https://github.com/c0ny1/xxe-lab下载好后将PHP_XXE放到PHPstudy的www目录下就可以访问XXE有回显注入在登录处先抓一下包,可以看到是参数的传递格式是XML,可能存在XML注入。将数据包发送到R原创 2021-03-30 22:20:51 · 3181 阅读 · 2 评论 -
[NCTF2019]Fake XML cookbook
题目是一个登录框,试了试弱密码登录不了,抓包看一下。发现传递的参数是xml格式,可能存在XXE漏洞。payload:<!DOCTYPE any [<!ENTITY a SYSTEM "file:///flag">]><user><username>&a;</username><password>admin</password></user>具体的XXE攻击可以查看另一篇博客https:.原创 2021-03-02 19:51:09 · 89 阅读 · 0 评论 -
[网鼎杯 2020 朱雀组]phpweb
打开题目就看到一个PHP的报错信息,查看网页源代码也没有发现其他信息。页面还隔五秒就刷新一下,使用burp抓包看一下。根据页面的报错信息和抓到的包来看,页面是执行了date函数,p的值是data函数内的值,试着执行一下cat / flag提示Hacker,被过滤掉了。试着读取一下页面的源码这里贴上源码<!DOCTYPE html><html><body><script language=javascript> setTim.原创 2021-02-05 18:31:44 · 84 阅读 · 0 评论 -
[BJDCTF2020]ZJCTF,不过如此
<?phperror_reporting(0);$text = $_GET["text"];$file = $_GET["file"];if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){ echo "<br><h1>".file_get_contents($text,'r')."</h1></br>"; if(preg_matc原创 2021-01-30 17:22:57 · 435 阅读 · 0 评论 -
[BJDCTF2020]The mystery of ip
看到IP立马就想到了XFF测试了一下,存在模板注入。是smarty注入。smarty注入payload{if phpinfo()}{/if}{if system(‘ls’)}{/if}{ readfile(’/flag’) }{if show_source(’/flag’)}{/if}{if system(‘cat flag’)}{/if}最终的到flag...原创 2021-01-29 20:10:38 · 77 阅读 · 0 评论 -
[GXYCTF2019]禁止套娃 无参数RCE
题目里只有一句话,F12也看不到任何信息,尝试后台扫描,结果也是得不到任何信息。使用Githack,扫到了有git源码泄漏。<?phpinclude "flag.php";echo "flag在哪里呢?<br>";if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) { 过滤php协议 if(';' .原创 2020-11-22 11:27:37 · 394 阅读 · 0 评论 -
[BUUCTF 2018]Online Tool
<?phpif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];}if(!isset($_GET['host'])) { highlight_file(__FILE__);} else { $host = $_GET['host']; $host = escapeshellarg($host);原创 2020-11-18 20:37:11 · 225 阅读 · 3 评论 -
PHP反序列化漏洞解析
<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler { protected $op; //%00*%00属性名 protected $filename; protected $content; function __construct() { //该方法在创建对象时自动调用 $op = "1"; $filename = "/tmp/tm原创 2020-10-31 21:37:47 · 655 阅读 · 0 评论 -
[GXYCTF2019]BabySQli
打开题目发现是一个登录界面,尝试一下admin,admin弱口令登录,结果提示wrong pass!,查看源码,发现一串特殊的字符。MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5然后对其先进base32解密,然后再进行base64解密,得到:select * from user where username = '$name'接着猜解表中有几个列a.原创 2020-10-28 18:30:46 · 158 阅读 · 0 评论 -
SQL注入实践 [极客大挑战 2019]HardSQL
打开题目,发现这也还是一个SQL注入的题目。难度可能比之前的大,也就加了点过滤吧。通过测试发现过滤了union,and,等于号,空格可以使用updatexml或extractvalue报错注入法查表:?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1.原创 2020-10-27 20:27:20 · 281 阅读 · 0 评论 -
Bugku_flag.php
打开题目,发现了一个登录页面,但是却不能提交,打开网页源码发现表单数据提交的地址也为空。这时候才想起来看一下题目的提示。显然点提交是提交是没用的。这里题目提示hint,想到hint.php,但是没有hint.php这个文件,看到flagphp,然后尝试hintphp但还是没用,然后尝试了一下?hint=1这里竟然访问到了源码分析源码:对cookie进行反序列化处理,若结果等于KEY,就会得到flag。此时的KEY为空,之前没有给他赋值,所以KEY默认为空,下边有一个KYE是赋了值的,但是这里的KE.原创 2020-10-25 15:02:24 · 183 阅读 · 0 评论 -
Bugku_多次
打开题目,发现页面上啥也没有,但是URl地址栏里有id的参数传进去,将id=1 换成id=2,页面信息发生变化,立马就想到了可能存在SQL注入。测试闭合方式id=1' //报错id=1" //不报错此时确定闭合方式为单引号闭合接着可以利用异或方式测试一下是否有对一些SQL注入的关键字有过滤。例如^(length(‘or’)!=0)如果返回页面显示正常,那就证明length(‘or’)==0的,也就是or被过滤了,通过测试发现,select or and union被过滤了,但是我们可以.原创 2020-10-24 21:25:44 · 273 阅读 · 0 评论 -
Bugku_字符?正则?
<?php highlight_file('2.php');$key='KEY{********************************}';$IM= preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match);if( $IM ){ die('key is: '.$key);}?> 通过分析代码可知,只要输入的id符合正则匹配,就可以得到fl..原创 2020-10-21 21:03:03 · 310 阅读 · 0 评论 -
Bugku_never give up
打开题目,只显示一行never never never give up !!! 没有其他任何信息抓包又重放了一下,然后有一个HTML的注释接着访问一下1p.html,查看网页源代码,发现了一个URL编码的字符串,解码后得到<!--JTIyJTNCaWYlMjglMjElMjRfR0VUJTVCJTI3aWQlMjclNUQlMjklMEElN0IlMEElMDloZWFkZXIlMjglMjdMb2NhdGlvbiUzQSUyMGhlbGxvLnBocCUzRmlkJTNEMSUyNyUyO.原创 2020-10-21 15:55:42 · 452 阅读 · 3 评论 -
Bugku_备份是个好习惯
根据题目提示,就可以想到是备份文件泄露,通过后台扫描得到了一个index.php.bak的可下载文件,打开看到了index首页的源代码<?phpinclude_once "flag.php";ini_set("display_errors", 0);$str = strstr($_SERVER['REQUEST_URI'], '?');$str = substr($str,1);$str = str_replace('key','',$str);parse_str($str);ech.原创 2020-10-20 20:42:40 · 139 阅读 · 0 评论 -
CTF代码审计
extract变量覆盖<?php $flag='xxx'; extract($_GET); if(isset($shiyan)) { $content=trim(file_get_contents($flag)); if($shiyan==$content) { echo'flag{xxx}'; } else { echo'Oh.no'; } }?>1、extract()函数使用数组键名作为变量名,使用数组键值作为变量的值,当变量中有原创 2020-10-20 13:40:03 · 2158 阅读 · 3 评论 -
[SUCTF 2019]CheckIn
打开题目,发现这是一道文件上传题,通过测试发现,只能上传图片文件,并且他还会过滤<?此处可以制作一个图片马由于他限制上传图片文件,所以可以在JavaScript代码前加上GIF89a?,从而绕过上传图片文件的限制。由于他会检查文件里的内容过滤掉<?所以可以编写成JavaScript代码进行绕过然后上传.user.ini注意生成的图片马的名称,要和.user.ini中的配置:auto_prepend_file的值相同。这样,每个页面就都包含2.gif这个文件了然后用蚁剑连接,就原创 2020-10-13 20:52:16 · 732 阅读 · 0 评论 -
[极客大挑战 2019]LoveSQL 1
打开页面发现这是一个登录页面,尝试使用万能密码绕过登录,接着就该判断它的闭合方式是什么了,用户名输入admin’ 发现页面报错,此时就可以确定是用单引号进行闭合的了。接着构造payload对登录进行绕过,admin' or '1'='1 #123成功对登录进行绕过然后发现一个32位的字符串,对它进行MD5解密(以为解密就可以得到flag),结果什么也没有得到。看来只能是通过SQL注入来得到flag了。判断字段数/check.php?username=admin' order by .原创 2020-10-08 22:10:50 · 128 阅读 · 0 评论