自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

D.MIND 的博客

Life is too short to be ordinary

  • 博客(80)
  • 收藏
  • 关注

原创 ThinkPHP5代码审计【RCE】

composer create-project --prefer-dist topthink/think=5.0.23 thinkphp_5.0.23

2021-05-14 19:44:36 127 8

原创 SSRF【CTFHUB】

file协议: 在有回显的情况下,利用 file 协议可以读取任意文件的内容http/s协议:探测内网主机存活dict协议:泄露安装软件版本信息,查看端口,操作内网redis服务等gopher协议:gopher支持发出GET、POST请求。可以先截获get请求包和post请求包,再构造成符合gopher协议的请求。gopher协议是ssrf利用中一个最强大的协议(俗称万能协议)。可用于反弹shell内网访问http://127.0.0.1/flag.php http://0.0.0.0/fl.

2021-05-14 09:56:20 5

原创 ThinkPHP5代码审计【未开启强制路由导致RCE】

文章目录简介环境搭建分析payload修复简介本次漏洞存在于 ThinkPHP 底层没有对控制器名进行很好的合法性校验,导致在未开启强制路由的情况下,用户可以调用任意类的任意方法,最终导致 远程代码执行漏洞 的产生。漏洞影响版本: 5.0.0<=ThinkPHP5<=5.0.23 、5.1.0<=ThinkPHP<=5.1.30环境搭建以5.1.29作为演示:composer create-project --prefer-dist topthink/think=5.1

2021-05-13 09:45:07 615 3

原创 Bypass disable_function【CTFHUB】

LD_PRELOAD是Linux下的环境变量它的本意是,允许程序优先加载指定的动态库。这样能够选择不同的动态库中的相同的函数或者变量。 使用场景是:当使用别人提供的动态库,发现其中某些函数实现不合理。但不能要求别人为你修改源代码并重新生成动态库。在这种情况下,使用LD_PRELOAD可以使用自定义的代码替换别人动态库中的部分代码。利用环境变量 LD_PRELOAD 劫持系统函数,让外部程序加载恶意 *.so,达到执行系统命令的效果。利用条件:1. 能够上传自己的.so文件2. 能够控制环境变量

2021-05-12 13:59:01 26 5

原创 ThinkPHP5代码审计【缓存文件引起的命令执行】

文章目录简介环境搭建payload分析修复简介本次漏洞存在于 ThinkPHP 的缓存类中。该类会将缓存数据通过序列化的方式,直接存储在 .php 文件中,攻击者通过精心构造的 payload ,即可将 webshell 写入缓存文件。缓存文件的名字和目录均可预测出来,一旦缓存目录可访问或结合任意文件包含漏洞,即可触发 远程代码执行漏洞 。漏洞影响版本: 5.0.0<=ThinkPHP5<=5.0.10 。环境搭建composer create-project --prefer-di

2021-05-11 17:14:17 31 2

原创 ThinkPHP5代码审计【变量覆盖引起的文件包含】

文章目录简介环境搭建分析修复简介本次漏洞存在于 ThinkPHP 模板引擎中,在加载模版解析变量时存在变量覆盖问题,而且程序没有对数据进行很好的过滤,最终导致 文件包含漏洞 的产生。漏洞影响版本: 5.0.0<=ThinkPHP5<=5.0.18 、5.1.0<=ThinkPHP<=5.1.10。环境搭建composer create-project --prefer-dist topthink/think=5.0.18 thinkphp_5.0.18修改json文件

2021-05-10 13:07:18 29 1

原创 ThinkPHP5代码审计【聚合函数引起的SQL注入】

文章目录简介环境搭建分析payload修复简介Mysql 聚合函数相关方法均存在注入本次漏洞存在于所有 Mysql 聚合函数相关方法。由于程序没有对数据进行很好的过滤,直接将数据拼接进 SQL 语句,最终导致 SQL注入漏洞 的产生。漏洞影响版本: 5.0.0<=ThinkPHP<=5.0.21 、 5.1.3<=ThinkPHP5<=5.1.25 。Payload IN :5.0.0~5.0.21 、 5.1.3~5.1.10id)%2bupdatexml(1,co

2021-05-09 18:55:58 56 2

原创 ThinkPHP5.1.22代码审计【SQL注入】

文章目录简介环境搭建分析1分析2payload修复简介由于Builder类中的parseOrder方法没有对$key值做严格过滤导致在Mysql类中的parseKey方法处实现恶意拼接,最终导致 SQL注入漏洞 的产生(orderby方法注入)漏洞影响版本: 5.1.16<=ThinkPHP5<=5.1.22 。环境搭建composer create-project --prefer-dist topthink/think=5.1.22 thinkphp_5.1.22依旧是下载好后

2021-05-08 21:13:08 52 1

原创 ThinkPHP5.0.10代码审计【SQL注入】

composer create-project --prefer-dist topthink/think=5.0.10 thinkphp_5.0.10下载好的thinkphp目录有问题,我们要去官网上下一个目录,链接:https://github.com/top-think/framework/archive/refs/tags/v5.0.10.zip下载好打开成这样:把这些文件都拷贝到原先composer下载好的thinkphp目录中即可:把application/index/controll

2021-05-07 20:06:38 42

原创 ThinkPHP5.1.17代码审计【SQL注入】

文章目录简介:环境搭建正常流程走一次不正常流程走一次payload:修复简介:在parseArrayData() 中出现可控制的拼接情况,从而导致 SQL注入 漏洞( update 方法注入)漏洞影响版本: 5.1.6<=ThinkPHP<=5.1.7 (非最新的 5.1.8 版本也可利用)。环境搭建利用composer下载5.1.17版本的源码composer create-project topthink/think=5.1.17 thinkphp5.1.17到compos

2021-05-05 23:37:02 190 7

原创 ThinkPHP5.0.15代码审计【SQL注入】

文章目录环境搭建分析payload:修复环境搭建到composer.json填写版本到application/index/controller/Index.php中配置:public function index()//控制方法{ $username = request()->get('username/a'); db('users')->insert(['username'=>$username]); return 'Update success';}

2021-05-04 20:23:43 33 1

原创 PHP基础学习(三)

前言:主要是MySQLi和PDO的一些学习,代码是面向对象的风格,与面向过程的思路大同,但写法小异文章目录前言:MySQLi 对象接口单语句执行:多语句执行:事务预处理:PDO实例化(建立连接)获取单条数据获取多条数据增删改【`exec()`】query()MySQLi 对象接口实例化MySQLi类:$db = new mysqli(host,user,pass,dbname);比如下例子中,我们连接本地数据库(localhost),用户名是root,密码是123123123,选择的数据库是d

2021-05-03 22:20:28 488 5

原创 PHP基础学习(二)

文章目录类的访问控制权限表类的继承使用`::`运算符parent 关键字final 关键字stats关键字多态接口类的访问控制权限表公有成员变量或方法能被全局访问,私有成员变量或方法只能被所属类访问,保护成员变量或方法能被同类和子类访问类的继承基类就是父类,派生类就是子类扩展或派生出来的类拥有其基类的所有变量和函数,并包含所有派生类中定义的部分public、protected 关键字定义的成员变量和成员函数可以被子类继承,private 关键字定义的成员变量和成员函数不能被子类继承使用::运

2021-05-02 22:42:17 49

原创 PHP基础学习(一)

PHP三种注释方式//单行注释,C++风格#单行注释,shell风格/**/多行注释,C语言风格多行注释中不能嵌套使用多行注释可变变量拼接变量名可变变量通常会用到数组中,如果你写下这样的变量:$$a[1],会造成模棱两可的问题如果想表示:$$a + [1],应该表示为:${$a}[1]如果想表示:$ + $a[1],应该表示为:${$a[1]}常量bool define ( string name, mixed value [, bool case_insensitive]

2021-05-02 17:35:21 47

原创 HTML基础

HTML:javascript:javascript语法格式:<script language="JavaScript"> ……</script><html> <head> <script language="javascript"> function getname(str){ alert("Hello "+str+" !!!"); } </script> </head> <body>

2021-05-01 17:48:14 19

原创 随笔·五一

正值五一,坐着客车回回家,见一篇随笔,遥有所想,遂以记之。回顾自己学信安的历程,算是很焦躁的。大概从大一上后半段学期就接触到信安了,当时自己也逐渐明确自己以后就是要从事这方面工作。信息安全,保证各类信息的安全。当时没有想的太多,浑浑噩噩地度过一段时间,没有做太多的实事,自学着C语言,课下花时间在功课上,很传统,到了大学还是想着课程最重要,当时也想着搞点CTF来学习一下,但学校里没有那种环境,自己的求知欲望又不强烈,如此到了大二上学期。经过一个疫情,莫名其妙到了大二,什么都没做出来,除了个别科目的学习成绩考

2021-05-01 10:10:49 33 1

原创 [GYCTF2020]EasyThinking【TP6 + disable_functions】

文章目录TP6 任意文件操作的利用方式:disable_functions的绕过总结:参考:题目名为:[GYCTF2020]EasyThinking猜到是考ThinkPHP了,上来可以直接试试www.zip,发现果然有源码泄露先随便访问一下使页面错误从而查看版本号是TP6的版本,没审过,继续看看网站上有啥功能,发现可以注册并登录,且有一个搜索功能,搜索的结果可以查看出来,猜测这是一个被利用的功能点上网搜一下有关TP6的漏洞,看到一篇:ThinkPHP6 任意文件操作漏洞分析这是有关SESSI

2021-04-30 16:23:26 12 1

原创 [watevrCTF-2019]Pickle Store【Pickle反序列化】

文章目录Pickle反序列化简单字符类型的反序列化类的反序列化`__reduce__`命令行下输入命令:python下反弹shell一、curl+base64二、curl -d三、nc 反弹shell一进来看看Cookie处,果然又是一个sessiongAN9cQAoWAUAAABtb25leXEBTfQBWAcAAABoaXN0b3J5cQJdcQNYEAAAAGFudGlfdGFtcGVyX2htYWNxBFggAAAAYWExYmE0ZGU1NTA0OGNmMjBlMGE3YTYzYjdmOGVi

2021-04-29 23:41:37 44

原创 [BJDCTF 2nd]简单注入【Bool+Regexp注入】

这道题跟之前做的 [NCTF2019]SQLi 十分相像,不过之前写的盲注脚本不大好,没有区分大小写文章目录Regexp注入布尔盲注脚本首先fuzz一下,主要过滤了union、select 、单引号、双引号、if、=、like但是值得庆幸空格、or、注释符 没被过滤(虽然过滤了也能绕)本题有个hint可以通过robots.txt发现Only u input the correct password then u can get the flagand p3rh4ps wants a girl f

2021-04-28 17:28:01 13

原创 [BJDCTF2020]EzPHP

前言:这道题很有意思,知识点多但都不是特别难的知识点,代码虽然多但都是 ”分段“ 的。总之做完真的学到很多文章目录前言:一、`$_SERVER['QUERY_STRING']`的绕过二、`%0a`绕过正则三、同名变量下`$_REQUEST`的优先级四、绕过文件内容读取的比较五、 sha1()函数的绕过六、 `create_function()`代码注入读取另外一个文件取反绕过 + 伪协议读源码define + fopen ()+fgets ()总结首先在源码中有一段GFXEIM3YFZYGQ4A=,这

2021-04-27 22:48:30 36

原创 Linux中/proc/目录的学习

environ:表示为该程序所设置的环境变量。maps:列出了进程所使用的库,有点长。。status:包含了进程状态一般信息(text格式)stat和statm:以一连串数字的形式提供进程内存消耗的信息fd:文件夹内有一连串数字文件,表示文件描述符,都是符号链接,链接到对应的文件。cwd:是个符号链接,对应到工作目录exe:是个符号链接,对应到可执行二进制文件root:指向当前进程根目录/proc 目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号(PID),里面.

2021-04-26 23:16:51 76 1

原创 [b01lers2020]Welcome to Earth(python)

考察:写脚本又来一道考察编写python脚本的题目。。当然也可以不用python编写一开始反转就是不断地抓包看源码,最后到/fight/这里时:就是对些字符串进行全排列,不过很明显pctf{hey_boys是开头,以}结尾的itertools.permutations():就是返回可迭代对象的所有数学全排列方式itertools.permutations()它以任意迭代作为参数,并始终返回生成元组的迭代器。它没有(也不应该)特殊的字符串。要获得字符串列表,您可以自己加入元组:list(ma

2021-04-25 22:36:54 16

原创 [NCTF2019]SQLi(Regexp注入)

文章目录分析Regexp注入盲注脚本总结:又是一道考验写python脚本的题目,python学的真不咋地,看师傅们的脚本才知道一些点改怎么写…分析查询语句:sqlquery : select * from users where username='' and passwd=''一开始真的尝试很多感觉不好绕,后来意识到前面username处可以用反斜杠将SQL语句的单引号转义,再之后就没头绪了,因为实在过滤了很多,之后尝试了看看有没有hint信息,在robots.txt处找到,提示看hint.

2021-04-25 21:44:51 43

原创 [SWPUCTF 2018]SimplePHP【Phar:// + 文件上传】

文章目录Phar:// 协议进行反序列化构造POP链生成phar总结:一道不算难的反序列化+文件上传题目,但自己在构造POP链时还是愣了好久,本菜鸡名副其实了首先是在查找文件处,URL明显是值得怀疑的file.php?file=这按照惯例得试试能不能把一些文件读出来一共是这些:index.php、base.php、file.php、upload_file.php、class.phpupload_file.php值得关注就是这个限制了,只允许图片在file.php中就有对象的生成//file.

2021-04-24 18:35:29 374 2

原创 [SUCTF 2019]EasyWeb【chdir()绕过open_basedir】

文章目录异或绕过正则方法一:phpinfo()方法二:`.htaccess`配合`php://filter`用python文件上传:open_basedir:利用chdir()绕过总结:<?phpfunction get_the_flag(){ // webadmin will remove your upload file every 20 min!!!! $userdir = "upload/tmp_".md5($_SERVER['REMOTE_ADDR']); if

2021-04-24 13:59:33 74 1

原创 [GYCTF2020]Ezsqli(Mysql逐位比较)

前言用到异或注入、bool盲注,这题我感觉最重要的还是理解mysql是如何比较字符串的 与利用 逐位比较 来配合盲注文章目录前言`sys.schema_table_statistics_with_buffer`查表mysql字符串 逐位比较大小总结这题关键过滤了union 、if 、sleep与 information,当然常规的or 和 and也是过滤了的一开始看到 if 和sleep被过滤了就没有往延时注入、union注入上想异或注入就成了我的首选!测试一下id=1 ^ 1# Error

2021-04-23 20:01:36 49 1

原创 [HITCON 2017]SSRFme

文章目录pathinfo()perl脚本GET的使用open存在命令执行访问VPS写下木马文件总结:172.16.128.254 <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $http_x_headers[0];

2021-04-22 23:43:01 20

原创 [RCTF2015]EasySQL

前言:又是一道二次注入的题目。本菜鸡还是没有独立做出来,对二次注入这个知识点还是有些不熟练。一开始先去注册,但发现即使自己正常填信息也不能注册成功,然后懒就没想着去Fazz一下。然后折腾好一会,当我直接只填写username而不填写password、email时发现注册成功。服了,当时心态有点不好吧…当尝试username为admin"然后再去改密码时出现了报错,说明是双引号闭合,而不是常规的单引号闭合,二次注入的利用点在修改密码的username处,username即为我们注册的username

2021-04-22 11:26:02 14

原创 [网鼎杯 2018]Comment

前言:这是一道蛮有意思的题目,首先是有关Git的一些命令自己基本不懂,再之这是一道SQL二次注入的题目,可以通过读取/etc/passwd文件的方式追溯flag文件,长见识的一道题文章目录前言:Git源码泄露git的一些基础命令源码分析利用方式/etc/passwd的字段解释:Git源码泄露提示git源码泄露,用工具也确实能得到一个php文件,但文件内容不完整,这里卡住不会操作了,看师傅们是git log --relog恢复日志,然后git reset --hard e5b2a2443c2b6d3

2021-04-21 23:03:16 373 2

原创 [CISCN2019 华北赛区 Day1 Web5]CyberPunk

文章目录文件包含、`php://filter`读源码:分析源码二次注入 联合 报错注入:后言:文件包含、php://filter读源码:在index.php中,查看一些网页源码。提示?file=?,可以猜到应该是文件包含,尝试GET传参即可读取到,用php://filter读取?file=php://filter/convert.base64-encode/resource=index.php读取index.php、change.php、delete.php、search.php、confirm

2021-04-21 17:24:44 23

原创 [CISCN2019 总决赛 Day2 Web1]Easyweb

文章目录源码泄露:分析源码SQL盲注文件上传——短标签源码泄露:常规访问一下robots.txt。发现有提示bak备份文件,但没有明确是哪一个文件。这里我按照常规做法尝试index.php.bak没成功,然后一直在哪乱试,脑子wat了居然没去看网页源码,还是太菜了。其实图片就来自于image.php,自然是该文件了…访问image.php.bak下载到源码分析源码//config.php<?phpinclude "config.php";$id=isset($_GET["id"])?

2021-04-20 19:30:07 28

原创 [FBCTF2019]RCEService

文章目录前言:一、非多行模式下%0a换行绕过二、利用PCRE回溯次数限制绕过前言:一道需要绕过preg_match()的CTF题目,如何绕过 preg_match() ?这题一看就知道使用打命令的了,但啥也没给啊??无奈先试试ls的命令{"cmd":"ls"}发现是有回显的,然后尝试cat读取就不行了…尝试ls根目录也不行无奈啊~向WP妥协了…然后看到别人说有源码,what?哪来的…没搞懂。那就直接看源码吧<?phpputenv('PATH=/home/rceservice

2021-04-20 16:45:32 24

原创 无字母数字RCE与LD_PRELOAD绕disable_functions

<?phperror_reporting(0);if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long."); }

2021-04-19 23:34:50 34

原创 ThinkPHP5.0中的MVC学习

文章目录ThinkPHP5.0框架目录:URL访问规则:更改访问入口文件的URL:新建模块:新建控制器(Controller):新建模型(Model)新建视图(View)MVCmvc的运行流程:ThinkPHP5.0框架目录:project 应用部署目录├─application 应用目录(可设置)│ ├─common 公共模块目录(可更改)│ ├─index 模块目录(可更改)│ │ ├─config.php

2021-04-15 22:44:58 80 1

原创 熊海审计

熊海审计一、文件包含漏洞0x01:%00截断截断大概可以在以下情况适用:include(require)file_get_contentsfile_exists截断条件:php版本小于5.3.4 详情关注CVE-2006-7243php的magic_quotes_gpc为OFF状态error_reporting(1); //关闭错误显示$file=addslashes($_GET['r']); //接收文件名$action=$file==''?'index':$file; //判

2021-04-15 00:10:04 30

原创 Think PHP3.2.3 update(blind)注入

前言:第一次尝试TP框架的代码审计,搭环境的过程有点坎坷…但勉勉强强还是完成了。原本以为审计起来不会太吃力,审计完才发现自己对工业化的代码框架认知程度远远不够,所以整个过程都比较艰辛,整理出来的东西还是不够清晰明了,下次再接再厉。坚持下去,死磕吧。┭┮﹏┭┮Think PHP3.2.3 update(blind)注入漏洞简述尽管ThinkPHP 3.2.x使用了 I 方法来过滤参数,但是还是过滤不严谨,导致SQL注入发生。ThinkPHP 3.2.3 目录结构下载框架后,解压缩到web目录下面

2021-04-14 13:32:59 22

原创 CTFshow——sqli-labs

草率地记录一下1——字符型id=-1' union select 1,database(),(select group_concat(flag) from ctfshow.flag )-- -2——数字型?id=-1 union select 1,database(),(select group_concat(flagac) from ctfshow.flagaa )-- -(select group_concat(table_name) from information_schema.ta

2021-04-10 21:06:50 45

原创 DASCTF 3月赛Web

BestDB$sql = "SELECT * FROM users WHERE id = '$query' OR username = \"$query\"";题目过滤了单引号和空格,因为这条语句的特殊,我们可以利用双引号在后面部分进行闭合。空格就用/**/查列数:1"/**/order/**/by/**/3#1"/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/information_schema.

2021-04-08 17:32:08 31

原创 CTFshow——代码审计

文章目录web301——SQL注入web301——SQL注入web303——报错注入web304——报错注入web305——web306——web307——web301——SQL注入将源码下载下来。主要看checklogin.php:$sql="select sds_password from sds_user where sds_username='".$username."' order by id limit 1;";$result=$mysqli->query($sql);$row=

2021-04-07 17:46:39 33

原创 [极客大挑战 2019]FinalSQL

前言:记录一道SQL注入题,用到了异或注入,确认过眼神,是我没掌握的知识点异或有两种: ^ 和 xor ^ 是前后进行二进制层面的异或运算xor 是逻辑上的异或操作,对前后两个逻辑真假进行异或最简单的两个例子:MariaDB [test]> select 1^1;+-----+| 1^1 |+-----+| 0 |+-----+MariaDB [test]> select 1^0;+-----+| 1^0 |+-----+| 1 |+-----+Ma

2021-04-03 16:18:04 13

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除