
web
前方是否可导?
随风而行,随心而行。
展开
-
[SUCTF 2019]Pythonginx(nginx相关配置,file协议,python代码审计)
f12查看源代码@app.route('/getUrl', methods=['GET', 'POST'])def getUrl(): url = request.args.get("url") host = parse.urlparse(url).hostname#得到url和主机名 if host == 'suctf.cc': return "我扌 your problem? 111" parts = list(urlsplit(url))原创 2020-10-05 23:14:21 · 500 阅读 · 1 评论 -
[BJDCTF2020]The mystery of ip(xff,smarty模板注入)
首先服务器是如何知道我的ip的呢,猜想可能是XFF或Client-IP这两个header.抓个包发现是通过XFFsmarty模板注入参考了一下这位师傅的博客.PHP的模板注入(Smarty模板)看看flag.php源代码是啥.<?php require_once('header.php'); require_once('./libs/Smarty.class.php'); $smarty = new Smarty(); if (!empty($_SER原创 2020-10-04 21:44:20 · 585 阅读 · 0 评论 -
[BJDCTF2020]ZJCTF,不过如此(php伪协议,data伪协议,preg_replace /e漏洞)
伪协议常用在文件包含漏洞中.常见的文件包含函数有:include、require、include_once、require_once、highlight_file、show_source、file_get_contents、fopen、file、readfile.具体的函数功能可以参考.伪协议的学习通过data协议构造 data://text/plain,I have a dream通过php协议构造 php://filter/convert.base64-encode/resource=ne.原创 2020-10-04 18:06:23 · 572 阅读 · 0 评论 -
[GWCTF 2019]我有一个数据库(文件包含漏洞)
一堆乱码,什么都没有.查看源代码也没有什么隐藏信息.于是dirsearch扫描一下,发现有个数据库登入页面.发现不用登录直接就可以进去了.但是发现这里面什么都没有.cve-2018-12613-PhpMyadmin后台文件包含这个漏洞出现在index.php中的// If we have a valid target, let's load that script insteadif (! empty($_REQUEST['target']) && is_st.原创 2020-10-03 22:33:59 · 467 阅读 · 0 评论 -
[GXYCTF2019]BabyUpload(.htaccess文件解析,伪造type)
先上传一个图片码(由于这里的后缀名被屏蔽掉了ph,这里的上传类型不能是php)在上传一个.htaccess文件使其在解析的时候将文件解析成php类型.之后通过蚁剑连接即可.原创 2020-10-02 16:12:33 · 315 阅读 · 0 评论 -
[安洵杯 2019]easy_web(文件包含,md5碰撞,base64,书写参数细节)
文件包含,base64img=TXpVek5UTTFNbVUzTURabE5qYz0这里的路径是经过了base64编码的,当时要注意的是这里在解码的时候记得要将末尾被省略掉的’='给加上去(猜测这里在解码的过程中可能有padding)(经过base64编码后个长度为4的倍数)结果双重base64解码,然后hex 转string 之后就可以得到路径了.c='TXpVek5UTTFNbVUzTURabE5qYz0='import base64from Crypto.Util import numb原创 2020-10-01 22:10:00 · 437 阅读 · 0 评论 -
[MRCTF2020]Ez_bypass
F12查看源码include 'flag.php';$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';if(isset($_GET['gg'])&&isset($_GET['id'])) { $id=$_GET['id']; $gg=$_GET['gg']; if (md5($id) === md5($gg) && $id !== $gg) { echo 'You got the first ste原创 2020-10-01 15:45:33 · 265 阅读 · 0 评论 -
[GXYCTF2019]禁止套娃(.git泄露,php代码审计)
1 .git泄露.直接到github中下载对应的工具.跑一下.e得到index.php源代码.<?phpinclude "flag.php";echo "flag在哪里呢?<br>";if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) { if(';' === preg_replace('/[a-z,原创 2020-09-29 22:04:34 · 203 阅读 · 0 评论 -
[MRCTF2020]你传你呢(.htaccess改变文件的扩展名)
打开后发现是文件上传.试着传一个一句话木马上去.发现直接传php文件不行,于是修改后缀.传完后,试着能不能传.htaccess文件,来修改扩展名.(注:这里文件名就是.htaccess)发现可以上传成功,然后通过蚁剑连接获得flag....原创 2020-09-29 17:22:00 · 393 阅读 · 0 评论 -
[GYCTF2020]Blacklist(报错注入+堆叠注入+HANDLER ... OPEN语句)
输入select发现被过滤了.这里直接告诉我们哪些关键词被过滤了.发现;没被过滤,同时虽然update被过滤了,但是仍然可以用extractvalue报错注入得到数据库的名字.1’ and extractvalue(1,concat(’~’,database()))#得到:得到数据库名后就可以show tables了.1’;use supersqli;show tables;#得到表名之后.使用HANDLER … OPEN语句1’;handler FlagHere open;h原创 2020-09-28 21:40:40 · 310 阅读 · 0 评论 -
[CISCN2019 华北赛区 Day1 Web1]Dropbox
打开链接后首先注册一个号,然后登录得到一个上传界面尝试上传一个木马index.php发现后缀被修改成了jpg.可以发现此路可能不通.既然有下载功能,那么我们是否可以直接下载flag文件了.可是经过抓包,然后再修改路径仍然发现找不到该文件.但是还是有收获的,因为我们可以通过下载功能下载的一些源文件.可以在前端代码中找到相关联的php源代码的文件名.尝试通过下载功能得到这些源文件.层层查找,最后发现源代码在上面两层.这里我们也可以发现有个沙盒.最终我们可以得到5个php文件.down原创 2020-09-27 22:58:23 · 129 阅读 · 0 评论 -
[网鼎杯 2020 青龙组]AreUSerialz(php序列化与反序列化)
访问得到的是一段代码.<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler { protected $op; protected $filename; protected $content; function __construct() { $op = "1"; $filename = "/tmp/tmpfile"; $co原创 2020-09-27 17:32:53 · 235 阅读 · 0 评论 -
php序列化与反序列化
序列化:举个简单的例子:<?phpclass Test{ protected $a=1; private $b=1; public $c=1; }$test=new Test();$a=serialize($test);echo $a;?>输出:O表示类型是object4表示object对应的类的名字的长度是4"Test"表示类名3表示对应变量的个数s表示序列化后为字符串4表示第一个变量的长度(这里要注意由于a的protected类原创 2020-09-27 17:08:01 · 123 阅读 · 0 评论 -
[GXYCTF2019]BabySQli(联合注入添加临时虚拟用户)
先模糊测试.419长度的都是被过滤掉的.但是幸运的是发现or在大写之后绕过了过滤.于是猜测order也可以通过大写来绕过.(真的可以).而union并没有被过滤.说明采用联合注入很有可能是可行的.先通过 order by 来测有几列.通过不断二分最终可以测出一共有3个字段.在查询过程中如果数据库中没有对应的结果,会临时创建一个虚拟用户举例:这是查询前的表.接着我们尝试查询一个不存在的数据.可能这样还不够直观,通过联合查询将直观性体现出来.(联合查询时注意列数)可以发现多了原创 2020-09-25 19:46:53 · 239 阅读 · 0 评论 -
[极客大挑战 2019]HardSQL(报错注入)
登入界面:尝试关键字测试.可以发现736的都被过滤了.而且发现并没有具体的回显点.于是尝试报错注入.首先爆出表名.admin'or(updatexml(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like(database())),0x7e),1))##H4rDsq1然后:admin'or(updatexml(1,concat(0x7e,(select(group原创 2020-09-24 17:04:11 · 192 阅读 · 0 评论 -
[CISCN2019 华北赛区 Day2 Web1]Hack World(bool注入,异或注入)
提交1后的正常回显为:尝试提交1’#'#'被过滤掉了.打开bp,对常见关键字进行一次fuzz测试结果如下:其中长度为482的为被过滤掉的特殊字符串.尝试bool注入:输入id=0 发现:利用该0,1不同回显来书写脚本.这里可以使用异或注入的方法.0^(ascii(substr((select(flag)from(flag)),?,1))=???).如果bool注入返回为真,那么就返回为真(1),返回为假则为假(0)特别注意:这道题目好坑,不能过快提交,所以可以用time模块原创 2020-09-22 20:20:26 · 207 阅读 · 0 评论 -
[BJDCTF2020]Easy MD5(构造ffifdyop,POST传参)
题目提示是md5.传入的参数会通过md5哈希然后转成ascII码再进行查询.于是尝试构成万能密码.‘or’XXXXXX构造的字符串为:ffifdyop有一个’./levels91.php’目录,访问他.要求a!=b 且他们的md5值是相等的.正常来说这几乎可以说是不可能的.但是这里有个漏洞,就是如果传参的类型错误,他们返回的都是false.那么他们也是相等的.于是传递两个数组类型.a[]和b[],这里还是GET方式.又得到一个php文件,继续访问他.发现这里传回来的数据是一段代码,原创 2020-09-21 23:36:49 · 284 阅读 · 0 评论 -
[极客大挑战 2019]BuyFlag(strcmp和is_mumeric漏洞)
f12查看前端代码:那么对于password的绕过可以让它等于404%20,这样就可以跳过is_numeric()的检测,对于money可以让它类型错误,从而直接返回0.另外还需要将user的值设为1,用post提交参数.改变提交方式:发送到repeater模块...原创 2020-09-19 16:19:13 · 188 阅读 · 0 评论 -
[ACTF2020 新生赛]Upload(文件上传)
先尝试直接上传一句话木马,发现果然不行.一开始觉得可能只是后端进行检测,但是发现流量还没有发出去就提示上传的文件错误,说明在前端就进行了检测.把检测的checkFile()函数删掉.然后上传一个phtml后缀的一句话木马.通过蚁剑链接即可....原创 2020-09-18 20:44:19 · 683 阅读 · 0 评论 -
[极客大挑战 2019]Http
1,查看源代码发现secret.php2,直接访问会出错,于是使用bp来抓包。启动拦截,并发送到Repeater模块提示我们访问不是来自https://www.Sycsecret.com于是修改Referer结果又提示:不是使用"Syclover"浏览器。于是修改User-Agent结果:又提示我们不是本地访问,于是修改XFF(X-Forwarded-For:获取访问者的ip地址,还有一种方法是从Remote Address中获得,相比X-Forwarded-For更安全,请原创 2020-07-25 20:48:25 · 137 阅读 · 0 评论