自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

1匹黑马

少就是多,慢就是快。

  • 博客(114)
  • 问答 (3)
  • 收藏
  • 关注

原创 博客搬家公告

公告博客搬家啦!支持实时疫情播报、GoogleHack、程序员专用多功能导航等功能新博客地址,欢迎来访~博客首页:

2021-02-27 14:59:02 406

原创 Heybbs-2.0存储型XSS漏洞复现

文章目录前言代码审计漏洞验证临时修复前言这个漏洞的成因主要是因为程序对用户的输入没有进行过滤而导致的代码审计漏洞出现在注册页面上,这里因为没有进行过滤,所以我们可以直接注册一个XSS语句,且每次访问index.php页面都会执行这个语句。先来看一下/php/register.php的代码吧可以看到,POST过来的username直接就赋值给了$username,下面的sql语句也是直接拼接进去的,连个单引号都没加这个bbs系统怎么说呢,但凡有数据交互的地方,就有利用点…漏洞验证首先注

2021-01-27 10:28:42 648 3

原创 Heybbs-2.0前台SQL注入漏洞复现

文章目录前言代码审计漏洞验证临时修复前言这个漏洞的成因主要是因为程序对用户的输入没有进行过滤而导致的这个bbs也是我挖的前一天才更新的,还说已经解决了SQL注入的问题,我看了下源码,属实解决了个寂寞啊…代码审计手动测试了一下,And 1=1 返回正常And 1=2 返回404页面先来看一下msg.php的代码吧可以看到,GET过来的id直接赋值给了$id,下面的sql语句也是直接拼接进去的,连个单引号都没加再来看一下user.php嗯,的确是一个人写的代码,一样的没有加过滤之类

2021-01-24 16:19:56 694

原创 Heybbs-2.0多处逻辑漏洞复现

文章目录前言代码审计漏洞验证临时修复前言这个漏洞的利用难度有些大,结合SQL注入漏洞,跑出数据库的用户跟密码后,需要有一个可以执行SQL语句的环境,我这里模拟受害者的网站开启了MySQL的远程登陆进行攻击。代码审计测试这个漏洞之前我其实依然是想挖一下代码执行的,这个洞利用有一定难度,但确确实实存在,就算是创建不了数据库,也是可以创建一个管理员权限的账号。漏洞发生在/install/install.php中,代码没有加任何的判断,攻击者可以轻松访问这个安装页面,就算是demo站,也是可以的,要不是

2021-01-20 20:16:20 727

原创 海洋CMSv12.5后台多处代码执行漏洞复现

文章目录前言代码审计漏洞验证临时修复前言好久没有写博客了,最近痴迷于挖一些通用型的漏洞,从这篇开始会陆续复现一些我挖的,或者网上爆出来的漏洞。海洋CMS也是才更新不久,但是这个后台代码执行的洞迟迟不补。代码审计说出来你可能不信,一共有四处代码执行,被执行的文件分别是/data/admin/ip.php/data/admin/notify.php/data/admin/ping.php/data/admin/weixin.php这四个文件前三个的exp相同,admin_weixin

2021-01-17 20:27:26 1818

原创 PHP代码审计基础:会话认证漏洞

文章目录会话认证漏洞挖掘思路session劫持攻击攻击流程环境搭建开始攻击修复方案session固定攻击攻击流程修复方案会话认证漏洞session固定攻击session劫持攻击挖掘思路遇到比较多的就是在cookie验证上,通常是没有使用session来认证,直接将用户信息保存在cookie中。session劫持攻击session劫持攻击是指黑客劫持目标用户的session id,来获取网站上未经许可的储存信息,特别是窃取目标用户的的cookie数据等,来取得网站的认可。攻击流程

2020-12-10 17:33:12 281

原创 PHP代码审计基础:PHP伪协议

文章目录file://协议php://协议data:// 协议file://协议条件:allow_url_fopen = on/offallow_url_include = on/off作用:用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响。include()/require()/include_once()/require_once()参数可控的情况下,如导入为非.php文件,则仍按照php语法进行解析

2020-12-10 00:15:40 230

原创 PHP代码审计基础:PHP弱类型

文章目录变量类型操作之间的比较empty()与isset()函数MD5函数strcmpin_array()array_search()swich变量类型标准类型:布尔型、整型、浮点、字符复杂类型:数组、对象特殊类型:资源操作之间的比较字符串与数字字符串与数组数字与数组数字+e+数字以上几点都包含在下面的代码中了:<?php# 字符串与数字var_dump(0=="admin"); # Truevar_dump(0=="1admin"); # Falseva

2020-12-09 19:13:00 269

原创 PHP代码审计基础:反序列化漏洞

文章目录序列化与反序列化序列化与反序列化序列化:把对象转换为字节序列的过程,称为对象的序列化。反序列化:把字节序列恢复为对象的过程,称为对象的反序列化。

2020-12-08 16:52:44 414

原创 PHP代码审计基础:变量覆盖漏洞

文章目录变量覆盖危害挖掘思路$$变量覆盖extract()变量覆盖变量覆盖变量覆盖,是指变量未初始化,我们定义的参数值,可以替换程序原有的变量值。危害通常结合程序其他的漏洞实现完整的攻击。比如文件上传,覆盖掉原来白名单的列表,导致任意文件上传;用户注册界面控制没有覆盖的变量,导致SQL注入挖掘思路主要还是以下几个函数extract()import_request_variables()parse_str()$$$$变量覆盖测试代码:<?php/*extract(

2020-12-06 22:26:02 448 1

原创 PHP代码审计基础:任意文件读取及删除漏洞

文章目录任意文件读取危害挖掘思路测试代码任意文件删除危害任意文件读取通过提交专门设计的 输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感文件,正常读取的文件没有经过校验或者校验不严格,用户可以控制这个变量或者变量读取任意文件危害任意文件读取,是Web安全中的高危漏洞,它可以泄露源码,数据库配置文件等等,导致网站处于极度不安全的状态挖掘思路fopen()file_get_contents()fread()fgets()fgetss()

2020-12-03 21:02:52 1143

原创 PHP代码审计基础:目录遍历及文件包含漏洞

目录遍历目录穿越(directory traversal)是HTTP开发的一种形式,黑客在一个Web服务器上使用这个软件除了可以访问服务器的根目录外还可以访问目录里面的数据。如果这种企图成功的话,那么黑客就可以查看到这些受限制的文件或者是服务器上的执行命令。Directory traversal攻击时一般是使用Web浏览器。从Web浏览器输入数据的任何服务器都很容易受到这种类型的攻击。危害造成...

2020-12-02 16:21:12 866

原创 PHP代码审计基础:文件上传漏洞

文章目录漏洞原理危害漏洞条件文件上传的可控点挖掘思路相关函数move_uploaded_file漏洞原理文件上传漏洞一些web应用程序中允许上传图片,文本或者其他资源到指定的位置。 文件上传漏洞就是利用网页代码中的文件上传路径变量过滤不严将可执行的文件上传到一个到服务器中,再通过URL去访问以执行恶意代码。危害上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者上传的文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行

2020-11-28 17:08:07 440

原创 PHP代码审计基础:CSRF漏洞

文章目录CSRF漏洞危害挖掘思路环境搭建实施攻击攻击条件修复方案CSRFCSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,Use

2020-11-28 14:48:03 335

原创 PHP代码审计基础:XSS漏洞

文章目录xss攻击xss的危害挖掘思路反射型xss常见场景存储型xss存储型与反射型的区别DOM型xss什么是DOM型xssDOM型常见属性xss攻击XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内

2020-11-28 09:32:18 543

原创 PHP代码审计基础:命令执行漏洞

文章目录命令执行挖掘思路命令执行与代码执行的区别命令执行的类型常见危险函数system()和passthru()exec()shell_exec()过滤函数escapeshellcmd()escapeshellarg()修复方案命令执行1、命令执行(Command Execution)漏洞即黑客可以直接在Web应用中执行系统命令,从而获取敏感信息或者拿下shell权限2、命令执行漏洞可能造成的原因是Web服务器对用户输入命令安全检测不足,导致恶意代码被执行3、更常见的命令执行漏洞是发生在各种We

2020-11-27 15:00:01 1584 1

原创 PHP代码审计基础:代码执行漏洞

文章目录代码执行漏洞挖掘思路常见危险函数eval()和assert()回调函数动态执行函数preg_replace()代码执行第一个参数第二个参数第三个参数修复方案代码执行漏洞PHP代码执行漏洞可以将代码注入到应用中,最终到webserver去执行。该漏洞主要存在于eval()、assert()、preg_replace()、call_user_func()、array_map()以及动态函数中。挖掘思路用户能够控制函数的输入存在可执行代码的危险函数常见危险函数eval()和asser

2020-11-26 17:51:36 268

原创 PHP代码审计基础:宽字节注入及二次注入漏洞

文章目录宽字节注入intval()addslashes()宽字节注入绕过修复方案二次注入二阶注入与一阶注入的区别搭建环境进行注入原理修复方案宽字节注入在使用PHP连接MySQL的时候,当设置“setcharacter_set_client = gbk”时会导致一个编码转换的问题,也就是我们熟悉的宽字节注入,当存在宽字节注入的时候,注入参数里带入% DF%27,即可把(%5C)吃掉。这里需要先说两个函数,这两个函数的作用就是防注入。intval()这里就相当于一个强制转型,即使是特殊符号,也会转

2020-11-25 17:51:11 421 2

原创 PHP代码审计基础:SQL注入漏洞

文章目录SQL注入介绍环境搭建创建数据库编写注入页面数字型注入与字符型注入的区别数字型注入字符型注入注入的利用方式查询数据读写文件SQL注入介绍SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。环境搭建创建数据库create database admin;use admin;c

2020-11-25 11:15:39 670

原创 php的OOP编程(上)

文章目录什么是面向对象php面向对象的剧本语法类属性与方法的定义:实例化对象修改属性方法调用属性静态属性和方法staticconst构造方法与析构方法类的继承什么是面向对象举一个例子,如何把大象装进冰箱?面向过程:把冰箱门打开把大象塞进去关闭冰箱门面向对象:大象:走进去冰箱:开门关门测试类:调用php面向对象的剧本语法类属性与方法的定义:<meta charset="utf8"><?php # 类 class Person{

2020-11-19 18:11:21 334

原创 第三届山东新一代信息安全攻防赛——Web题目wp

文章目录Web1方法一方法二Web2代码审计命令执行Web3目录扫描手工注入Web1方法一这道题的思路就是文件包含加代码审计,最后文件上传。先来扫一下目录访问/static,有目录遍历看一下upload.js的源码:$(function () { $("#submit").on("click", function () { var fileName = $('#file_name').val(); var fileContent = $('#file_

2020-11-19 16:29:47 459 1

原创 BugkuCTF——最新web篇writeup(持续更新)

文章目录web2计算器web基础$_GETweb基础$_POST矛盾web3域名解析你必须让他停下变量1web2打开页面后F12查看源代码即可。flag:KEY{Web-2-bugKssNNikls9100}计算器这里做了输入长度限制,F12选中输入框,修改长度限制即可。flag:flag{CTF-bugku-0032}web基础$_GET这里要理解超全局变量$_GET,只要我们传递的参数为what,并且内容为flag,即可输出flag。flag:flag{bugku_get_su8

2020-11-16 19:45:20 2425

原创 php操作Mysql详解(实现丐版phpMyadmin)

文章目录mysqli_connect()这里会用到几个重要的函数去操作数据库,连接、增删改查,这些操作,我会在下面一一列举出来的mysqli_connect()格式:$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");连接成功后:如果连接失败就会报错:...

2020-11-11 00:54:29 570

原创 详解php的文件操作

文章目录文件包含requireinclude文件包含require直接在代码里演示一下它是怎么包含的,我们先定义一个关联数组:t1.php<?php $conn = array( 'host' => 'localhost', 'mysql' => 'localhost', 'port' => 3306, 'database' => 'testdb' );现在用require包含一下这个

2020-11-04 00:16:11 325

原创 详解php中的会话技术

文章目录Cookie设置超时时间用Cookie写一个网站访问计数器Session清空SessionSession登陆测试Cookie设置Cookie用setcookie函数格式如下:setcookie('name','value');例子:<meta charset="utf-8"><?phpsetcookie('www.aaa.com','123456');setcookie('www.bbb.com','zxcasd');setcookie('www.ccc.com

2020-11-03 00:59:57 499

原创 详解php的常量变量以及作用域

文章目录定义格式defind()变量超全局变量全局变量局部变量调用全局变量定义格式define('常量名',‘常量值’)defind()检测是否定义过常量<?php define('PI', 3.1415926); # 返回true var_dump(defined('PI'));?>变量超全局变量超全局变量在上一篇文章中已经做过详细的笔记了超全局变量全局变量全局变量就是谁都可以调用这个变量,全局可用的变量:<?php# a跟b都是全局变量$a =

2020-11-02 19:09:56 272

原创 详解php中的函数与超全局变量

文章目录函数的定义格式超全局变量$GLOBALS$_SERVER$_GET$_POST$_REQUEST函数的定义格式function 函数名(参数1,参数2){ 函数功能}例子:<meta charset="utf-8"><?php# 无参数函数function Name(){ echo "www.xxx.com<br>"; echo "www.asdf.com<br>"; echo "www.ooo.com<br>"

2020-11-02 15:43:08 167

原创 详解php中的数组

文章目录定义格式关联型数组数组的遍历数组的增删改查增加删除数据修改数据查询数据关于数组的几个函数count()array_key_exists()in_array()array_keys()定义格式$arrayName = ('xxx',xx,true);数组的形式有两种,一种是索引数组,一种是关联数组,关联行数组它的key是自己定义的,索引型数组的key是程序给的:关联型数组格式:<?php$a = '123';$b = 'admin';$array = array( 'ke

2020-11-01 23:31:09 120

原创 详解PHP中的字符串

文章目录字符串单引号与双引号的区别字符串常用的函数strlen()mb_strlen()strpos()stripos()str_replace()strstr()substr()explode()implode()trim()addslashes()和htmlspecialchars()字符串单引号与双引号的区别单引号中的变量不会被解析且格式化字符串不会被转义,而双引号中的变量会被解析,格式化字符串也会被转义:<meta charset="utf-8"><?php $a =

2020-10-31 21:50:08 457

原创 详解PHP中的数据类型、运算符与控制结构

文章目录前言变量的写法输出变量类型的函数isset()var_dump()gettype()PHP的五个基本数据类型字符串(string)整数(intger)浮点数(float)布尔型(boolean)NULL值前言开始之前先来个hello world吧,顺带标记一下php的注释格式:<?php echo "Hello World!"; //echo "Hello World!"; #这也是单行注释 /* 这是 多行 注释 */ phpinfo();?>变量的写法

2020-10-31 15:18:47 306

原创 Bootstrap用法(实现注册页面)

文章目录安装测试是否可用基本用法栅格系统导航实现留言板注册界面安装去官网下载bootstrap,下载用于生产环境的版本下载jQuery,直接复制链接用迅雷下载js文件即可提取bootstrap中的bootstrap.min.js和bootstrap.min.css把三个文件(bootstrap.min.js、bootstrap.min.css、jquery-3.5.1.min.js)整合到一个js文件夹中测试是否可用上个代码看看:<!DOCTYPE html><htm

2020-10-30 22:26:59 5209

原创 HTML基础

文章目录基础标签基础标签HTML基本标签标签 名称 示例<h1>~<h6> 标题标签 <h1>静夜思</h1><p></p>、<br/> 段落和换行标签 <p>床前明月光<br/>疑是地上霜</p><hr/> 水平线标签 <hr/><em></em> 斜体 <em>zh举头望明月</em&

2020-10-30 13:42:20 120

原创 详解python中的面向对象(下)

文章目录类属性类属性类属性创建有点类似于在类中创建一个全局变量,这个变量类跟实例都可以调用它# 定义一个模板class Dog(): number_of_dogs = 0 # 构造方法 - 添加实例属性,做其他初始化工作 def __init__(self,name,height,power): self.name = name self.height = height # 设置血量为默认属性,值为10 self

2020-10-28 00:15:27 515

原创 详解python中的面向对象(上)

文章目录类和对象定义一个类对象的创建类的属性类和对象类的概念:类就是具有一定共同特征的事物的统称,比如人类,两条腿能够独立思考吃饭说话,都归为人类。对象的概念:抽象出来,能够吃饭做事的某一个人,比如张三,他就是类的对象,那么实例化一个对象就比如汽车,四个轮子加油能跑,这是汽车类,那么奔驰宝马奥迪,就是汽车类的实例化对象,类有着对象的属性。定义一个类#使用class关键字,类的第一个字母要大写class Ren: name = '张三' sex = '男' high = '

2020-10-24 10:30:09 1273 6

原创 sqli-labs系列——第七关(GET字符型注入导出shell)

文章目录判断注入爆绝对路径开始注入判断注入这里可以看出是字符型注入http://1.1.1.130:86/Less-7/index.php?id=1%27%20and%20%271%27=%271去源码里看一下,原来是加了两个括号测试注入,这里提示导出文件:http://1.1.1.130:86/Less-7/index.php?id=1%27))%23爆绝对路径这里因为不知道具体的绝对路径,所以返回第一关去看一下http://1.1.1.130:86/Less-1/?id=-1

2020-10-14 11:48:06 718 1

原创 Python爬取豆瓣裤袜视界高清大图

文章目录前言第一步:整合URL第二步:过滤URL第三步:批量下载图片完整代码前言今天刚好有个朋友托我写一个脚本,需求是爬取他刚看的一部动漫的剧照,于是我就开始着手满足他这个需求哈哈哈~因为这个脚本涉及到一些批量拿站也会用到的脚本,所以就归类到Python渗透编程里了,我会分3步简要的说一下这个脚本的编写思路。第一步:整合URL我首先看了一下网站的URL结构,这种爬图的活儿有点像套娃,需要一层一层的去进行数据清洗,直到得到真正的地址.jpg其实脚本很好理解,需要你掌握Python的正则,我这里有

2020-10-14 00:31:24 22474

原创 详解python中的正则表达式

文章目录Python正则表达式正则表达式元字符.[]^$\其他正则特性重复*+?Python正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。正则表达式元字符.点是匹配除

2020-06-25 16:27:05 3675 12

原创 sqli-labs系列——第六关(双引号二次查询注入)

文章目录判断注入开始注入判断注入先输一个单引号看看:、可以看到这里是采用的双引号闭合,那么我们就在后边让它跟一个双引号报错:开始注入第六关其实就是一个双引号的二次查询注入,这里就不做过多演示了,原理跟第五关一样,都是用了count()、floor()、rand()、group by语句来进行注入的。这里直接上exp干了:http://192.168.1.113:86/Less-6/?id=1" union SELECT null,count(*),concat((select passw

2020-05-08 18:16:50 2158

原创 sqli-labs系列——第五关(二次查询注入)

文章目录判断注入什么是二次查询注入rand()函数floor()函数concat()函数group by语句count()函数开始注入exp判断注入一开始我以为这是一个常规的sql盲注,操作之后发现事情并没有那么简单,为了方便学习,我直接把sql语句输出出来了:然后就去看题目名称,Double Injection(双查询注入),就明白怎么回事了。什么是二次查询注入双查询注入其实就是一个...

2020-04-26 20:18:53 6869 3

原创 sqli-labs系列——第四关

文章目录判断注入开始注入判断注入第四关过滤了 ’ 但是没有过滤 " ,这个题跟第三题一样,之不过第三题过滤了 " 第四题过滤了 ’ 罢了。看一下对比:第三关第四关也就是说,第四关的sql语句是这样的:select * from user where id=("$id");那么exp也很好写了:-1") union SELECT 1,2,(select group_conca...

2020-04-26 11:29:09 3758

空空如也

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

TA关注的人

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