- 博客(131)
- 收藏
- 关注
原创 Mac中使用pd安装kali及pdtools指北
ParallelsDesktop安装pdtools真的是心累,每次配置kali的pdtools都要耗费大量时间,看到网上有一些在kali上安装pdtools的教程,但往往需要结合很多文章才有可能解决问题,并且没有为懒人准备的全套软件,所以出此文章希望能够帮助大家能够简单快捷解决问题。...
2022-07-28 21:07:03
5101
7
原创 [TQLCTF_2022]web复现
注册登陆,查看图片使用伪协议我们可以读取到/etc/passwd想要读取get_pic.php和index.php但是不知道文件路径,所以使用php伪协议/get_pic.php?image=php://filter/convert.base64-encode/resource=get_pic.php | index.phpget_pic.php源码<?phperror_reporting(0);$image = (string)$_GET['image'];ech.
2022-03-23 22:08:49
766
原创 SQL注入练习--sqli-labs
前言SQL注入是比较常见的漏洞,有数据库的地方就可能存在SQL注入,所以学好SQL注入是非常有必要的,sqli-labs是一个不错的练习靶场。推荐一篇文章SQL注入之Mysql注入姿势及绕过总结前置知识注入流程判断是否存在注入,注入是字符型还是数字型,闭合情况,绕过方式?id=1' ?id=1" ?id=1') ?id=1") ?id=1' or 1#?id=1' or 0#?id=1' or 1=1#?id=1' and 1=2#?id=1' and sleep(5)#?id=
2022-02-12 18:10:48
2931
原创 一月刷题总结
攻防世界--mail布尔盲注,session伪造,format格式化字符串漏洞攻防世界--weiphpweiphp5.0框架漏洞:.git泄漏、SQL注入、文件上传漏洞(利用.phtml)高校战疫网络安全分享赛: webtmppickle反序列化漏洞学习BUUCTF--[CISCN2019 华北赛区 Day1 Web2]ikuncookie伪造,pickle反序列化攻防世界--Confusion1SSTI攻防世界--Confusion2md5爆破,cookie伪造,php反序
2022-01-21 22:14:15
2559
原创 攻防世界--Web_python_block_chain
通过这道题对区块链有了一个简单的了解,这道题主要是参考师傅们的wp,所以这里就不再赘述,主要讲一下自己的收获。这道题利用的是双花攻击中的51% attack。51% attack指的是攻击者如果可以拥有超过全网50%的算力,就可以创造一条高度大于原始链的链,攻击者可以发送一个新的块到这条链上。这里使用的为0确认,就是不需要别人确认,就如我们生活中的一手交钱一手交货,不同的是生活中我们处于中心化社会,银行会帮我们确认。而6确认就是需要经过6个人(区块被挖出)交易才确定。区块链的规则:当出现分叉时,
2022-01-21 22:10:39
10552
原创 攻防世界--mail
尝试登陆admin给出提示可知存在admin账号尝试注入显示只能是数字和字母,先注册进去,给出提示通过扫描目录可以发现/flag目录查看session要更改session就需要secret_key
2022-01-20 18:02:14
3096
原创 攻防世界--weiphp
这道题原本应该是通过.git源码泄漏获取到源码,利用工具githack,可能是环境的问题,执行完发现目录是空的直接从网上找源码,可能比源代码的内容要多一些GitHub - weiphpdev/weiphp5.0: WeiPHP5.0,公众号与小程序结合的最佳开发框架,,它实现一个后台同时管理和运营多个客户端(公众号,微信小程序,后续将支持支付宝小程序,百度小程序等)进入后的页面为一个登陆框,将login改为register发现该功能被禁用了前台SQL注入由于这里对title参数并没有检.
2022-01-19 22:20:49
1553
原创 高校战疫网络安全分享赛: webtmp
源码打开后的页面点击here可以看到源码,关键处代码当满足Animal类中对象的name和category属性和secret内的两个属性的值吻合即可getflag这里还限制了‘R',并且RestrictedUnpickler函数使得我们只能使用mian中模块。所以可以导入secret然后再覆盖secret变量的值手写opcode有些困难,所以利用pker工具pker代码放到1.txt中secret=GLOBAL('__main__', 'secret') # python.
2022-01-17 23:09:56
2896
原创 BUUCTF--[CISCN2019 华北赛区 Day1 Web2]ikun
当用户名为admin时注册没有响应,随便先注册进去首页显示要买到lv6通过观察源码和请求可以发现lv4对应的图片时lv4.png,参数page是页数可以利用脚本来查找lv6在哪一页import requestsurl="http://611051e9-5a5a-42e4-914f-4257977185b0.node4.buuoj.cn:81/shop?page="for i in range(0,2000): print(i) r=requests.get( url
2022-01-17 16:29:37
1415
原创 攻防世界--Confusion2
这个题是Confusion1的延续,所以根据题目提示,先在1中把salt文件内容先读出来_Y0uW1llN3verKn0w1t_这里开放了register和login,注册并登陆关于md5值爆破,我比较习惯使用数字来爆破,效率比较高一下<?php$i=0;for ($i;$i<=9999999999999999;$i++) { if (substr(md5($i), 0, 6) == '7358dd') { echo($i); exi
2022-01-16 22:11:17
1058
1
原创 攻防世界--Confusion1
进入页面看到给出一个目录访问后给出flag的目录测试发现存在SSTI漏洞发现存在过滤但是并未过滤request,request 是 Flask 框架的一个全局对象 , 表示 " 当前请求的对象(flask.request ) " 。利用file类读取文件最终payload:{{''[request.args.a][request.args.b][2][request.args.c]()[40]('/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0a.
2022-01-16 17:36:43
519
原创 BUUCTF--[CISCN2019 华北赛区 Day1 Web1]Dropbox
注册登陆发现这里可以上传文件,并且可以下载/删除下载文件时抓包,看到可控参数filename尝试任意下载文件,可以读取passwd读取源码,同样方法读取download.php、delete.php、login.php和class.php(delete.php代码中可知)在class.php中可以利用file_get_contents实现任意文件读取由于这里并没有触发点unserialize(),配合 phar://伪协议,我们可以使用不依赖反序列化函数 unserializ...
2022-01-16 15:47:01
645
原创 长安战“疫”--Flag配送中心
其实看到Flag已发送至www.yunyansec.com!就应该想到。。。对这个洞的理解是把本该发送到yunyansec.com上的内容发送到了我们的代理服务器上添加请求头Proxy:http://ip/port监听端口
2022-01-13 21:53:26
1342
原创 长安战“疫”--Baby_Upload
打开后是一个文件上传上传图片发现额....好吧,图片被拦截了这里用的是Apache开启SSI,文件上传Getshell什么是shtml使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类似于ASP的基于服务器的网页制作技术。通过SSI的命令实现getshell程序代码:<!– 指令名称=”指令参数”>exec作用:将某一外部..
2022-01-11 21:59:47
520
原创 长安战“疫”--flask
当时都被重定向搞崩溃了,,, 还是自己太菜了,没想到用参数值来绕过先看注释大致意思是访问路径以/login开头或者是以.js结尾查看/static.js本以为有提示,结果啥也没有,那答案一定是在/admin中request.full_path获取当前url,(包含参数)请求一个http://127.0.0.1:8000/200/?type=10request.get_full_path()返回的是【/200/?type=10】访问/admin,得到一个参数name这里不知道都.
2022-01-11 21:10:09
275
原创 攻防世界--upload3
注册登陆上传文件发现上传一次后没法上传第二次了。。。重新注册个号,尝试上传php文件发现被拦截了,改成.jpg也被拦截了,猜测这里检测了文件头,想起之前伪造文件头,在文件开头添加GIF89A即可虽然可以成功上传上去,但是没法执行扫描目录发现源码泄漏,访问/www.tar.gzProfile.php文件这里限制了上传文件的后缀名Cookie这里有个序列化猜测是反序列化 ,覆盖掉filename即可实现文件名任意__get() 用于从不可访问的属性读取数据__ca...
2022-01-11 17:21:11
1806
原创 攻防世界--url
进入后页面显示no url,然后就没有其他的了,结合题目,猜测是url为参数通过测试发现是以POST方式传参url尝试使用伪协议读取文件参考WP发现只有当text位置为www.baidu.com时才不会报错base64后为,即可获得flag参考文章:CTF中常用的php伪协议利用 - 1ndex- - 博客园...
2022-01-10 21:45:20
1533
5
原创 攻防世界--TimeKeeper
将price和id加上引号,触发debug联想到扫描目录出现的/consoleFlask debug pin安全问题这种方法有点难,换种方法目录穿越可以成功读取任意文件,获得flag。
2022-01-10 20:42:38
948
1
原创 攻防世界--Web_python_flask_sql_injection
一开始看题目还以为是一道Flask+SQL的题,这里出现的漏洞点都是在SQL代码审计:路由执行代码都在routes.py,自定义函数在others.pyadd:插入 del:删除 mod:更新 sel:查询/index路由:发现没有任何过滤,插入第一条语句用来闭合,第二条执行注入a','1','2022-1-1'),(Null,(select database()),'1','2022-1-1')#...
2022-01-10 17:19:18
295
原创 攻防世界--upload
这道题真是涨芝士了,原来文件名也能SQL注入...这里应该是将文件名存到数据库中并返回到页面上显示出来测试这里通过select时,字母无回显,十六进制无法使用,所以要使用十进制,并且要防止溢出 select、from被过滤,双写绕过 CONV(n,from_radix,to_radix):用于将n从from_radix进制转到to_radix进制substr(str,start,length):将str从start长度为length分割 hex(str):将str转成十六进制 payl
2022-01-09 21:22:53
754
原创 攻防世界--Background_Management_System
先看提示这里有一个登陆和一个注册,尝试注册admin显示已经存在,猜测SQL注入,发现这里有WAF无法绕过,先注册进去看看提示只有admin才会给hints扫下目录www.zip源码泄漏,这里发现shell.php但是目前还无法利用代码审阅限制了Login和Register都对可控参数做了转义,无法利用Userinfo中没有限制,所以可以利用修改密码改实现越权$sql = "UPDATE users SET PASSWORD='$pass' where userna...
2022-01-09 17:29:41
1568
原创 攻防世界--smarty
根据题目和页面内容提示,可以知道这里使用的是PHP中的Smarty模板网上看这个模板存在着模板注入,但是没有找到参数,猜测在请求头那就有两种可能的注入点:XFF client IP发现XFF存在注入测试phpinfo()发现这里禁用了很多函数,并且可访目录也做了限制使用{if}标签写入一句话木马{if file_put_contents('/var/www/html/shell.php','<?php eval($_POST[cmd]);')}{/if}...
2022-01-07 23:03:47
1259
原创 攻防世界--ics-02
初始页面,看到这种页面就比较头疼,无从下手先来扫下目录download会让我们下载一个ssrf的pdf文件secret目录下包含着secret.php和secret_debug.phplogin页面显示
2022-01-06 21:25:04
1082
原创 攻防世界--filemanager
看到这里猜测是个文件上传漏洞,测试几次发现好像只能上传图片,rename只能更改文件名,但无法更改后缀。随手扫了一下发现源码泄漏,审阅rename代码<?php/** * Created by PhpStorm. * User: phithon * Date: 15/10/14 * Time: 下午9:39 */require_once "common.inc.php";if (isset($req['oldname']) && isset..
2022-01-05 18:03:45
1348
原创 攻防世界--love_math
先来审计源码<?phperror_reporting(0);//听说你很喜欢数学,不知道你是否爱它胜过爱flagif(!isset($_GET['c'])){ show_source(__FILE__);}else{ //例子 c=20-1 $content = $_GET['c']; if (strlen($content) >= 80) { die("太长了不会算"); } $blacklist = [' ', '
2022-01-05 11:44:53
594
原创 攻防世界--blgdel
进入页面后看到有注册和登陆按钮,先注册一个账号由于这里涉及到金额,尝试查看session和抓包都没能更改数字尝试其它办法,这里看到有一个上传头像,但点进去显示还记得在注册的时候有一个推荐人框,尝试拉人头注册集齐十个人头就可以上传和搜索文件下一步需要知道文件路径,发现存在uploads目录进入之后可以实现目录遍历,查找我们上传图片的路径上传一句话后发现有过滤了一些东西,回头又扫了一下目录发现robots.txt中有config.txt,审码<?phpclass.
2022-01-04 21:27:20
1120
原创 buuctf--easyflask
根据提示访问/file?file=index.js,可以看到提示源码在/app/source#!/usr/bin/python3.6import osimport picklefrom base64 import b64decodefrom flask import Flask, request, render_template, sessionapp = Flask(__name__)app.config["SECRET_KEY"] = "*******"User = type
2022-01-04 20:00:31
971
原创 MoeCTF 2021--Web_Inc
这里就简单记录一下这个题,<?phperror_reporting(0);include_once "flag.php";$a=$_GET['a'];$b=$_POST['b'];if(isset($a)){ if($a!=$b&&md5($a)===md5($b)){ echo $flag; }else{ echo 'try again'; }}else{ highlight_file(__FILE_.
2021-09-08 20:58:48
798
原创 BUUCTF--[极客大挑战 2019]PHP
学了几天的PHP反序列化漏洞,找一个比较简单的题练练手进入后给出提示网站存在备份,尝试几种常见的备份目录或者也可以直接扫描目录访问/www.zip时弹出下载框,得到源代码,flag.php文件只有被调用执行才可获得到flag在index.php中发现这样一段代码<?phpinclude 'class.php';$select = $_GET['select']; //可控参数$res=unserialize(@$select); //反序列化?>...
2021-09-04 20:48:12
352
原创 PHP反序列化漏洞
首先我们先来了解一下PHP的序列化和反序列化函数可以简单用图来表示PHP 序列化:只序列化对象属性,不序列化对象的方法 对于不同访问控制修饰符的属性,输出也不同 公有属性:属性名 私有属性:%00类名%00属性名 保护属性:%00*%00属性名 下面是比较典型的PHP反序列化漏洞中可能会用到的魔术方法:void __wakeup ( void )unserialize( )会检查是否存在一个_wakeup( ) 方法。如果存在,则会先调用_wakeup 方法,预.
2021-08-31 21:56:44
298
原创 八月刷题总结
2021DASCTF July X CBCTF--cat flag考察日志文件位置,escapeshellarg函数绕过DASCTF July X CBCTF 4th--ezrceYAPI Mock远程代码执行漏洞BUUCTF--[HarekazeCTF2019]Easy NotesSESSION反序列化BUUCTF--[SWPU2019]Web3伪造Session,生成linux中的软链接BUUCTF--[watevrCTF-2019]Pickle StorePickle反序列化漏
2021-08-31 00:01:19
561
原创 [极客大挑战 2019]BuyFlag
在PAYFLAG页面中查看源码可以看到一下提示~~~post money and password~~~if (isset($_POST['password'])) { $password = $_POST['password']; if (is_numeric($password)) { echo "password can't be number</br>"; }elseif ($password == 404) { echo "Password Right!</
2021-08-30 23:42:34
131
原创 [PWNHUB 公开赛 2018]傻 fufu 的工作日
使用dirsearch扫描目录可以发现index.php.bak现在后给出提示被加密<?php /* PHP Encode by http://Www.PHPJiaMi.Com/这里可以直接使用解密脚本进行解密解密后可以查看源代码,源代码中看到include 'UploadFile.class.php'继续查看UploadFile.class.php.bak,同样的方法解密$filename = !empty($_POST[$this->field]) ? $_POST[$t.
2021-08-30 22:40:24
421
原创 [2021祥云杯]Package Manager 2021
一开始进入页面有点迷茫,查看了一遍也没什么发现。查看给出的源码,在schema.js可以知道用的是mongodb。之前也没有见过mongodb,简单了解一下MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。在index.ts中发现存在SQL注入router.post('/auth', async (req, res) => { let { token } = req.body; if (token !==.
2021-08-30 20:45:52
1047
原创 服务端模板注入(SSTI)
之前做题一直没有深入了解这个模板,对它的认识只停留在测试{{2*2}}是否可以得出结果4。这里就先简单介绍在 CTF 中,最常见的Jinja2 的 SSTI 漏洞。Flask SSTI 题的基本思路就是利用 python 中的魔术方法找到自己要用的函数。简单来说就是从基本类开始向外来查找可利用的子类。__dict__:保存类实例或对象实例的属性变量键值对字典 __class__:获取当前对象的类 __mro__:返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。 __...
2021-08-27 16:43:09
295
原创 BUUCTF--[FireshellCTF2020]ScreenShooter
进入页面后首先是让我们输入一个网址,当我们访问百度网址时它会返回百度网页的截图看大佬的wp上是说这里存在的是CVE-2019-17221漏洞PhantomJS 到 2.1.1 有一个任意文件读取漏洞,如 file:// URI 的 XMLHttpRequest 所示。该漏洞存在于网页模块的 page.open() 函数中,该函数加载指定的 URL 并调用给定的回调。攻击者可以提供特制的 HTML 文件作为用户输入,允许读取文件系统上的任意文件。例如,如果 page.render() ...
2021-08-26 23:14:33
661
原创 BUUCTF--[HCTF 2018]Hideandseek
帐号登录后是一个上传ZIP文件上传一个.ZIP文件后发现他会显示文件的内容可能是有文件读取,我们创建一个软链接(类似windows的快捷方式)指向一个服务器上的文件,尝试是否可以读取aliang@aliang:~/Desktop# ln -s /etc/passwd passwdaliang@aliang:~/Desktop# zip -y passwd.zip passwd adding: passwd (stored 0%)上传后发现可以成功读取到/etc/passwd的...
2021-08-20 22:58:33
413
原创 BUUCTF--[羊城杯 2020]EasySer
进入后是这样的页面,有点懵,看下大佬的思路:1) 源码写了不安全协议从本地,想到http 和127.0.0.12) 读源码看反序列化,写入shell3) 伪协议base64绕过die(),rot13等等都可以考点:1) PHP 基础代码审计2) SSRF本地文件读取3) 反序列化写入webshell,绕过死亡绕过使用文件扫描扫到robots.txt,提示访问/star1.php/查看页面的源代码可以看到提示利用http://127.0.0.1/star1.php...
2021-08-20 18:09:48
917
原创 BUUCTF--[羊城杯 2020]Blackcat
进入后查看源码发现提示都说听听歌了!下载Hei_Mao_Jing_Chang.mp3文件,使用命令strings Hei_Mao_Jing_Chang.mp3查看文件在文末看到一段PHP代码if(empty($_POST['Black-Cat-Sheriff']) || empty($_POST['One-ear'])){ die('$clandestine = getenv("clandestine");if(isset($_POST['White-cat-monitor'..
2021-08-19 13:09:18
1276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人