前言本次审计的项目有提供部署的相关步骤和视频教程,但不知为何我自己在搭建的时候会出现莫名的错误导致环境搭建不起来,因此只能fofa上面搜一个来进行测试
fofa语句:"/Mao_Public/js/jquery-2.1.1.min.js"
前台sql注入漏洞首先我们先审计一下主页代码index.php,发现一处sql查询的地方
1234567891011<?php $rs = $DB->query("SELECT * FROM mao_shop WHERE M_id='{$mao['id']}' and (tj='0' && zt='0') order by id desc limit 2"); while($rows = $DB->fetch($rs)){ i ...
前言本次审计的是一个基于tinkphp6框架的U支付系统
在fofa上面搜索:"/usdtmerchant/login/reg.html"便可以找到相关的网站,要注意的是有些网站已经进行了改进,再也不能利用该文章中的漏洞了
前台sql注入漏洞身为一个普通用户,我们能够访问的也就只有index.php,所以我们要从app/index/controller/Index.php开始进行审计
我是在已经知道有该漏洞的情况下进行复现的,所以在该文件中我直接搜索关键字Db,查查是否有可以利用的函数,如下:
1public function send(){ $dd = Db::query(urldecode($_REQUEST['query']));}
该方法允许直接对变量query进行赋值,输入相关的搜索语句,直接运行
该方法并没有对输入的内容进行验证,所以可以尝试是否存在sql注入漏洞
正是因为语句是我们自己输入的,所以并不存在联合注入漏洞,无法报错注入
尝试后可知该方法只要搜索语句正确状态码便是200 ...
引用本文是根据P神的两篇文章进行学习,分别是一些不包含数字和字母的webshell以及无字母数字webshell之提高篇
浅析CTF绕过字符数字构造shell
第一个问题123456<?phpif(!preg_match('/[a-z0-9]/is',$_GET['shell'])) { eval($_GET['shell']); }else{ highlight_file(__FILE__);}
题目在eval()前进行过滤,那我们就得在eval()里得到正常的webshell语句并执行。eval()允许多语句(可分号),这就为我们得到正常的webshell语句提供了很大的操作空间。
首先,核心思路便是将非字母、数字的字符经过各种变换,最后能构造出a-z中任意一个字符。然后再利用PHP允许动态函数执行的特点,拼接处一个函数名,如“assert”,然后动态执行之即可
php5中assert是一个函数,我们可以通过$f='assert';$f(...) ...
Cat首先打开题目环境,发现是如下的输入框
尝试输入127.0.0.1,回显如下
发现是get传参,输入ip后会ping一下
最开始以为是ssrf相关漏洞,尝试后发现并不是,那么应该就是跟ping相关的了
输入:127.0.0.1;ls,结果回显Invalid URL
那应该就是有字符过滤的了,掏出sqli_fuzz字典开始fuzz
结果发现当输入%a0的时候页面会直接会显出代码
一个html文件,将其代码复制后再打开
用游览器打开以后最底下可以看到一串提示:You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.
也就是说,True in your Django settings file.有可能flag文件在 settings file 中 ...
前言这两天审计了一个基本组成是thinkphp的代码,里面有一个文件上传的漏洞,下面记录一下审计的整个流程
在fofa上面搜索一下:"web/static/css/chunk-elementUI.f92cd1c5.css",搜索到的链接其前后端便是这次审计的代码框架
审计在开始审计该框架的时候,我便已经知道这个框架有一个文件上传的漏洞,所以审计的过程中我便只看了跟文件上传有关的代码
该框架是一个多应用模式,app目录下面有admin,api,super,web四个目录,身为普通用户的我们是在web目录下的,也只能够操作web目录下面的控制器方法
web目录下面有一个Upload.php文件,具体代码如下:
1234567891011121314151617181920212223242526272829303132333435363738<?phpnamespace app\web\controller;use think\facade\Filesystem;class Upload extends Base{ /** *上传图片 ...
面向对象-基础类和对象的内存分配机制Java 内存的结构分析
栈: 一般存放基本数据类型(局部变量)
堆: 存放对象(Cat cat , 数组等)
方法区:常量池(常量,比如字符串), 类加载信息
举一个创建对象的流程分析例子
123Person p = new Person();p.name = “jack”;p.age = 10
先加载 Person 类信息(属性和方法信息, 只会加载一次)
在堆中分配空间, 进行默认初始化(看规则)
把地址赋给 p , p 就指向对象
进行指定初始化, 比如 p.name =”jack” p.age = 10
成员方法调用机制示意图
递归例题一
下面为该题代码
1234567891011121314151617181920212223242526272829303132333435public class Test { public static void main(String[] args) { T t1 = new T(); int n = 7; ...
Write-Up
未读journal关注重点代码
1234567891011121314151617181920212223<?phpecho "<p>Welcome to my journal app!</p>";echo "<p><a href=/?file=file1.txt>file1.txt</a></p>";echo "<p><a href=/?file=file2.txt>file2.txt</a></p>";echo "<p><a href=/?file=file3.txt>file3.txt</a></p>";echo "<p><a href=/?file=file4.txt>file4.txt</a></p>";echo "<p><a href ...
引用thinkPHP8.0安装与避坑
ThinPHP官方手册
安装thinphp8.012345678910111213<!--1、访问网址下载安装composer-->https://getcomposer.org/Composer-Setup.exe<!--2、配置镜像源防止乱七八糟的网络和GitHub仓库拉取无权限问题-->composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/<!--3、在网站根目录(www)下进入cmd创建项目-->composer create-project topthink/think tpcd tp<!--4、解决依赖项报错-->composer up --ignore-platform-reqs<!--5、运行命令查看效果-->php think run<!--6、访问查看结果,这里有坑:不能直接访问0.0.0.0:8000这个地址-->127.0.0.1:8000
在第三步 ...
产品:信呼oa
影响版本:<=2.32
开源地址:https://github.com/rainrocka/xinhu/commits/master/
首先我们先起好docker镜像,默认登录账号名为admin,密码为123456
开始代码审计最最开始的时候,我们当然要看index.php的代码(代码块中的大部分注释为我自己写入进去的理解)如下:
123456789101112131415161718192021222324252627282930<?php include_once('config/config.php');$_uurl = $rock->get('rewriteurl');$d = '';$m = 'index';$a = 'default';if($_uurl != ''){ unset($_GET['m']);unset($_GET['d']); ...