
网络安全
文章平均质量分 79
sayo.
记录学习
展开
-
【一分钟】ThinkPHP v6.0 (poc-yaml-thinkphp-v6-file-write)环境复现及poc解析
官方环境下载器:https://getcomposer.org/Composer-Setup.exe下载文档时可以设置代理,不然下载不上,你懂的下载成功cmd cd 进入到你的www文件下(在那里打开终端也行)执行如下命令composer create-project topthink/think tp60下载完成后,进入tp60文件夹找到该项目下的composer.json更改这个位置,版本为6.0.0重新在该位置使用composer update在当前位置继续使用php原创 2023-12-28 14:16:29 · 821 阅读 · 0 评论 -
Say0l的安全开发-代理扫描工具-Sayo-proxyscan【红队工具】
快速代理扫描。后面会介绍详细测试过程哦,让你真正收获代理。轻量快速代理扫描器。渗透、爬虫再也不怕没代理资源了。资产代理扫描,安全边界维护。原创 2023-09-15 11:26:20 · 989 阅读 · 0 评论 -
跨域资源共享 (CORS) | PortSwigger(burpsuite官方靶场)【万字】
写在前面在开始之前,先要看看ajax的局限性和其他跨域资源共享的方式,这里简单说说。下面提到大量的origin,注意区分referer,origin只说明请求发出的域。浏览器的同源组策略:如果两个 URL 的 protocol、port 和 host 都相同的话,则这两个 URL 是同源。同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。最重要的是它通常允许域向其他域发出请求,但不允许访问响应。a原创 2023-08-21 13:43:42 · 1431 阅读 · 0 评论 -
简记 | CVE-2020-14882,CVE-2020-14883
原理简析:出现这个漏洞的关键就在于,如果请求的路径在 matchMap 列表里,那么 值就为 true ,这些是属于静态资源,没有做资源的限制和身份校验。近似于全局权限控制变量。在 方法首先判断 ,我们就可以通过修改请求 访问静态资源使值为true。后面要做的就是重定向,后面payload做了一个重定向最后请求portal文件,构建控件树最后目录穿越,获取到的文件也就是 webapp 下的 。原创 2022-10-25 23:57:57 · 469 阅读 · 1 评论 -
XSS-lab靶场(11~15)
Level 11<?php ini_set("display_errors", 0);$str = $_GET["keyword"];$str00 = $_GET["t_sort"];$str11=$_SERVER['HTTP_REFERER'];$str22=str_replace(">","",$str11);$str33=str_replace("<","",$str22);echo "<h2 align=center>没有找到和".htmlspecial原创 2022-05-26 09:42:59 · 382 阅读 · 0 评论 -
XSS-lab靶场(6~10)
Level 6这里我们就省去黑盒测试的步骤了,直接来看看源码吧:<?php ini_set("display_errors", 0);$str = $_GET["keyword"];$str2=str_replace("<script","<scr_ipt",$str);$str3=str_replace("on","o_n",$str2);$str4=str_replace("src","sr_c",$str3);$str5=str_replace("data","da_原创 2022-05-23 15:44:53 · 452 阅读 · 1 评论 -
HTTP请求走私 | PortSwigger(burpsuite官方靶场)| part 2
写在前面在前面介绍了http走私的探测方法,这里终于来看看如何利用这样一个漏洞完成攻击吧原创 2022-05-03 17:18:18 · 1285 阅读 · 0 评论 -
HTTP请求走私 | PortSwigger(burpsuite官方靶场)| part 1
写在前面在开始之前,非常容易弄混的一点是,HTTP请求走私究竟发生在哪里?答案是发生在负载均衡。开始之前,首先需要区别,负载均衡和cdn:简单来说,负载均衡是一个反向代理,使用它的目的是能够对请求进行有效的分发。因为当前服务器都是分布式的,对于请求也必须做出区分,在负载均衡的两侧分别是请求池和服务器池,它就是通过各种简易或复杂的算法进行分发请求至最优策略的服务器。对于用户来说,仅仅是将请求发往这个代理,无需管后面的,而对于后端数据库,也不管是哪一个用户来进行调度数据,服务器自己来调就行,有着明显的分隔原创 2022-04-30 15:13:06 · 2250 阅读 · 0 评论 -
目录遍历 | PortSwigger(burpsuite官方靶场)
写在前面官方链接:https://portswigger.net/web-security/file-path-traversal在解释知识点时,一部分对官方解释进行了引用,另一部分对具体解题加入了自己的想法,注意甄别。那么,开始吧。考虑一个显示待售商品图像的购物应用程序。图像通过一些 HTML 加载,如下所示:<img src="/loadImage?filename=218.png">loadImageURL 接受一个参数并返回指定文件 的filename内容。图像文件本身存储在原创 2022-03-27 16:27:04 · 1991 阅读 · 0 评论 -
访问控制漏洞和权限提升 | PortSwigger(burpsuite官方靶场)| Part 3
写在前面现在是综合应用,来看看横向到纵向的权限提升。通常情况下,横向权限提升攻击可以变成纵向权限提升,通过危害更高权限的用户。例如,水平升级可能允许攻击者重置或捕获属于另一个用户的密码。如果攻击者以管理用户为目标并破坏了他们的帐户,那么他们可以获得管理访问权限,从而执行垂直权限升级。User ID controlled by request parameter with password disclosure...原创 2022-03-23 16:58:53 · 4663 阅读 · 0 评论 -
访问控制漏洞和权限提升 | PortSwigger(burpsuite官方靶场)| Part 2
写在前面参考链接和引用资料见part 1前面part 1说完了垂直越权,现在来说说水平越权原创 2022-03-20 13:47:34 · 518 阅读 · 0 评论 -
访问控制漏洞和权限提升 | PortSwigger(burpsuite官方靶场)| Part 1
写在前面一些概念会直接引用,主要是对于靶场和关键知识点会进行讲解。靶场链接资料引用访问控制概念简单的来说就是应用程序首先会判断用户的身份(账号密码登录),随后确认后续请求是否由该用户发出(会话管理),然后判断是否允许用户执行“所请求的操作”或访问“所请求的资源(访问控制)”1、从用户角度访问控制模型分为以下类型:垂直访问控制:控制不同权限等级的用户访问应用程序不同的功能;如“管理员”可以修改/删除账号,而普通账号无法操作。水平访问控制:控制用户只能访问自己的资源,而不能访问其他用户相同原创 2022-03-18 17:06:29 · 4711 阅读 · 0 评论 -
XXE(外部实体注入)| PortSwigger(burpsuite官方靶场)| Part 3
XInclude attacks一些应用程序接收客户端提交的数据,在服务器端将其嵌入到 XML 文档中,然后解析该文档。当客户端提交的数据被放入后端 SOAP 请求中时,就会出现这种情况的一个示例,该请求随后由后端 SOAP 服务处理。在这种情况下,您无法执行经典的 XXE 攻击,因为您无法控制整个 XML 文档,因此无法定义或修改DOCTYPE元素。但是,您也许可以XInclude改用。XInclude是 XML 规范的一部分,它允许从子文档构建 XML 文档。您可以XInclude在 XML原创 2022-03-07 09:48:09 · 1311 阅读 · 0 评论 -
XXE(外部实体注入)| PortSwigger(burpsuite官方靶场)| Part 2
Blind XXE with out-of-band interaction via XML parameter entities(通过 XML 参数实体进行带外交互的盲 XXE)原创 2022-03-03 11:12:04 · 686 阅读 · 0 评论 -
POP链实例解析学习
写在前面POP链就是利用魔法方法在里面进行多次跳转然后获取敏感数据的一种payload,实战应用范围暂时没遇到,不过在CTF比赛中经常出现这样的题目,同时也经常与反序列化一起考察,可以理解为是反序列化的一种拓展,泛用性更强,涉及到的魔法方法也更多。基本魔法方法我用的代码如下:<?phpclass A{ public $a="hi"; public $b="no"; function __construct() {原创 2021-11-28 14:35:03 · 9081 阅读 · 0 评论 -
SSRF - ctfhub -2【FastCGI协议、Redis协议、URL Bypass、数字IP Bypass、302跳转 Bypass、DNS重绑定Bypass】
FastCGI协议知识参考:CTFhub官方链接首先介绍一下原理(这里简单介绍,详情请看官方附件)如果说HTTP来完成浏览器到中间件的请求,那么FastCGI就是从中间件到某语言后端进行交换的协议。和浏览器请求包一样,也是由header、body组成。还需要提到一个PHP-FPM,FastCGI进程管理器,即在php中(nginx等服务器中间件)FastCGI规则打包好后传递的终点,最后由FPM按照fastcgi的协议将TCP流解析成真正的数据。比如打包好的数据长这样{ 'GATEWA原创 2021-11-18 16:20:34 · 2409 阅读 · 2 评论 -
SSRF - ctfhub - 1【内网访问、伪协议读取、端口扫描、POST详解、上传文件】
写在前面ssrf无论是生活中还是比赛中都是一种非常常见的漏洞。但一般来说单独考察的较少。后面将从ctfhub和其他平台上来慢慢练习。SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限原创 2021-11-18 16:13:30 · 2667 阅读 · 0 评论 -
登陆身份识别机制(Session工作机制,PHP版)【含登陆程序脚本】
写在前面当登录时究竟发生了什么?如何去追踪关键信息,关键信息又在哪里?看了很多不管是http基本认证还是session的机制,体会不够深,还是不如自己边写边理解和记忆来的深刻。参考资料:《PHP、MySQL与JavaScript学习手册》 第五版 --中国电力出版社希望能对你理解登陆身份识别上有所帮助。基础知识这里仅简单说一说。cookie在首部中交换,在网页的html内容之前发送,html一旦发送,就无法再发送cookie了。例如:1.浏览器发起请求,请求头会指定请求文件路径和服务器2.原创 2021-11-08 16:24:38 · 3402 阅读 · 0 评论 -
XSS漏洞利用 + owasp练习
写在前面靶场链接:https://github.com/do0dl3/xss-labs原创 2021-10-25 14:39:24 · 624 阅读 · 0 评论 -
XSS-lab靶场练习(1~5)
写在前面https://github.com/do0dl3/xss-labsLevel 1没有什么过滤或者其他的什么,就是普通的get型传参这里使用的也是我们非常常用的探测语句:<script>alert('xss')</script>Level 2对于输入框:在网页源代码中,我们输入的数据,是在表单中的value属性内,所以需要先闭合input标签,也是通过get来获取参数。所以payload:"><script>alert('xss')原创 2021-10-25 14:37:49 · 278 阅读 · 1 评论 -
CBC字节翻转攻击(例题:bugku-CBC)
了解一下加密过程的关键就在于:分组,初始向量iv,异或CBC模式的加密方式是通过一个初始向量(IV)先和明文分组第一组异或后使用秘钥K加密,作为第一组密文,同时又与后一分组的明文异或后进行加密产生下一组密文,依次重复。WP-bugku-CBCvim -r原创 2021-10-04 10:20:33 · 1955 阅读 · 0 评论 -
注册/已登录 界面的常用利用方法
写在前面当登录界面无法进行sql注入,或者当前需要管理员登录,并且能够轻松进行注册和执行登陆等后续操作(非专用用户),你就可以尝试从登陆后的场景来进行利用。约束攻击可以参考以前的【超链接】在注册的地方利用二次注入注册时未过滤敏感字符,比如注册admin' -- 用户,之后利用密码修改,通过sql语句就直接修改admin的密码,仅仅对注册时进行了转义session在Web中,session是认证用户身份的凭证,它具备如下几个特点:1.用户不可以任意篡改2.A用户的session无法被B用原创 2021-09-27 21:29:24 · 307 阅读 · 0 评论 -
PHP字符串解析特性 ($GET/$POST参数绕过)(含例题 buuctf easycalc)
了解一下PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:1)删除空白符2)将某些字符转换为下划线(包括空格)例如:下面这个图就是测试出来在能够哪些地方添加并得到特殊处理。通过以上特性,当waf限制get参数类型或者长度等等,我们就可以很轻松的绕过。参考链接:https://www.freebuf.com/articles/web/213359.html例题 buuctf-easycalc打开题目,查看源代码提示中显示有WAF,同时有一个检验函数,有一个原创 2021-09-20 21:08:47 · 3252 阅读 · 2 评论 -
命令注入(DVWA+buuctf pingpingping)
写在前面命令注入漏洞和SQL注入、XSS漏洞很相似,也是由于开发人员考虑不周造成的,在使用web应用程序执行系统命令的时候对用户输入的字符未进行过滤或过滤不严格导致的,常发生在具有执行系统命令的web应用中,如内容管理系统(CMS)等。也就是在cmd等等命令行执行位置可以使用一些trick,自然你也会想到在CTF中会伴随一些关键字的屏蔽,当然也有一些绕过技巧。这里主要是dvwa上的命令注入和一道CTF例题来说明DVWA命令注入后台代码并未对用户输入的参数ip的值进行过滤就直接与ping命令进行拼接原创 2021-09-15 11:23:24 · 1107 阅读 · 0 评论 -
phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)$target_blacklist = array ( 'import.php', 'export.php');// If we have a valid target, let's load that script insteadif (! empty($_REQUEST['target']) && is_string($_REQUEST['target']) &&a原创 2021-09-13 15:58:40 · 144 阅读 · 0 评论 -
wp-ctfshow-web10 (group up注入)
wp打开题目:点“取消”下载源码:<?php $flag=""; function replaceSpecialChar($strParam){ $regex = "/(select|from|where|join|sleep|and|\s|union|,)/i"; return preg_replace($regex,"",$strParam); } if (!$con)原创 2021-08-30 11:10:03 · 163 阅读 · 0 评论 -
SQL注入-md5加密参数漏洞(CTF例题)
漏洞成因php中的md5函数有一个可选参数,如果开发者写查询数据库函数时使用了这个参数,或者在数据存储时是md5后的字符串形式存储,都有可能产生这个漏洞。利用方法md5看似是非常强加密措施,但是一旦没有返回我们常见的16进制数,返回了二进制原始输出格式,在浏览器编码的作用下就会编码成为奇怪的字符串(对于二进制一般都会编码)。我们使用md5碰撞,一旦在这些奇怪的字符串中碰撞出了可以进行SQL注入的特殊字符串,那么就可以越过登录了。下面是参考资料的英文原版:The trick: Raw MD5 h原创 2021-08-29 21:30:25 · 1946 阅读 · 0 评论 -
文件上传漏洞练习 upload-labs(16~20)【exif图片检测,二次渲染绕过,上传条件竞争,包含条件竞争,文件名可控】
写在前面下面几道题目与php源码、图片木马有关,如果你对php或者图片木马并不是很熟悉,或者看起来较为吃力,可以点击下方源码分析链接会有基础知识和图片马的知识基础,同时在pass-03中有源码分析和对各个函数的讲解。图片木马在下方pass也会有讲解,也可以看看。Pass 16本题使用的检测函数为exif_imagetype()来看看它的详细解释同样也是对图片进行检测,大概就是读取第一个字节并检查后缀名,在开始之前,你需要在php配置中开启php_exif()选项。其本身也仅仅是检测是否原创 2021-08-26 18:49:14 · 707 阅读 · 0 评论 -
文件上传漏洞练习 upload-labs(11~15)【双写绕过,get%00截断绕过,post 00截断绕过,图片马上传及绕过】
写在前面下面几道题目与php源码有关,如果你对php并不是很熟悉,或者看起来较为吃力,可以点击下方源码分析链接会有基础知识准备,同时在pass-03中有源码分析和对各个函数的讲解。Pass-11这里点开源码都不一样了,不再是之前的去点,转小写,去特殊字符等等函数。来看看吧:$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $den原创 2021-08-24 11:59:21 · 964 阅读 · 0 评论 -
SQL注入屏蔽词替换python脚本(例题:ctf.show-web7)
适用场景在ctf中经常会有关键字的屏蔽,例如屏蔽空格,屏蔽select等关键字。使用脚本直接完成关键字替换,避免pyload修改过于麻烦。同时适用于linux等命令的屏蔽常见绕过学习链接:https://www.cnblogs.com/Vinson404/p/7253255.html脚本shield=' '#屏蔽词replace='/**/'#替换值#and=&& or=||#下面是参考payload,自己输入时注释以#结尾最好payload1="1' or 1=1原创 2021-08-22 23:44:19 · 654 阅读 · 0 评论 -
SQL-labs练习记录(16~20)【post时间盲注,密码注入,UA注入,referer注入,cookie注入】
post时间盲注,附带新脚本,从包入手,更改各项数据。原创 2021-08-22 10:45:04 · 497 阅读 · 0 评论 -
SQL-labs练习记录(11~15)【仿真登录,报错注入,闭合探测,dnslog注入】
Less11到这里,题目终于与我们现实中见到的登录比较相似了,但是要知道这仅仅是形式不同(只是sql语句要再次选择一个密码框),其原理与之前的学习关联非常大。首先输入单引号或错误语句进行探测有错误提示,说明这是错误注入,那么思路大体就是第一关的思路。使用一个真语句进行探测。1' or 1=1 -- 登录成功。这里有几个点要说明一下:1.首先这里不再是get型,换成了post,这很容易理解,这也就表明后续我们写脚本要使用post方法了。2.在登录框的注释不再是get请求会被url编码,所以原创 2021-08-15 16:43:16 · 226 阅读 · 0 评论 -
PHP反序列化-字符逃逸
写在前面字符逃逸是在反序列化的基础之上进行的,如果你不是很清楚反序列化漏洞,可以点击下方:[超链接]摘要普通PHP反序列化漏洞是因为用户对反序列化过程可控造成的魔法方法弹出导致的漏洞,字符逃逸不仅可以在普通反序列化漏洞之上...原创 2021-08-13 11:46:38 · 468 阅读 · 0 评论 -
PHP反序列化-__wakeup()方法漏洞(CVE-2016-7124)
写在前面wakeup()是在反序列化的基础之上进行的,如果你不是很清楚反序列化漏洞,可以点击下方:[超链接]漏洞影响的版本PHP5 < 5.6.25PHP7 < 7.0.10漏洞利用方法若在对象的魔法函数中存在的__wakeup方法,那么之后再调用 unserilize() 方法进行反序列化之前则会先调用__wakeup方法,但是序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup的执行漏洞出现情况1.可以之间或简介控制序列化结果2.__wakeup(原创 2021-08-13 11:44:59 · 4121 阅读 · 0 评论 -
PHP反序列化漏洞/对象注入(知识准备、漏洞成因、攻击方法、示例、CTF例题)
知识准备在php中与序列化相关的函数为:serialize()unserialize()分别对目标进行序列化、反序列化序列化产生的字符串形式如下:例子:$arr=array();$arr['name']='张三';$arr['age']='22';$arr['sex']='男';$arr['phone']='123456789';$arr['address']='上海市浦东新区';var_dump($arr);输出: array(5) { ["name"]=> st原创 2021-08-13 11:42:17 · 1031 阅读 · 0 评论 -
SQL约束攻击浅解
漏洞成因在SQL中执行字符串处理时,字符串末尾的空格符将会被删除。换句话说“vampire”等同于“vampire ”,对于绝大多数情况来说都是成立的(诸如WHERE子句中的字符串或INSERT语句中的字符串)例如以下语句的查询结果,与使用用户名“vampire”进行查询时的结果是一样的。SELECT * FROM users WHERE username='vampire ';但也存在异常情况,最好的例子就是LIKE子句了。注意,对尾部空白符的这种修剪操作,主要是在“字符串比较”期间进行的。原创 2021-08-06 14:46:20 · 340 阅读 · 0 评论 -
Javascript Prototype污染攻击(原型链污染,Bugku-web-sodirty wp)
prototype它表示原型,样本,标准。在javascript中,你使用构造函数时会创建一些属性和方法。在构造方法时,你书写了函数的内容,那么,当你每创建一次对象时就会执行一次函数内容并将方法绑定在新的对象上。如果你希望早创建类时仅创建一次该方法,同时绑定在“类”上,也就是任何实例化对象都可以直接访问该方法,当然你通过类也可以,并且只有一份。你就需要使用prototype类名.prototype.方法名 = function 方法名() {函数内容}这样就能够仅创建一份了。虽然任何实例化对原创 2021-08-06 14:44:30 · 1349 阅读 · 3 评论 -
文件上传漏洞练习 upload-labs(6~10)【大小写绕过,空格绕过,打点绕过,特殊字符绕过,去点绕过】
写在前面下面几道题目与php源码有关,如果你对php并不是很熟悉,或者看起来较为吃力,可以点击下方源码分析链接会有基础知识准备,同时在pass-03中有源码分析和对各个函数的讲解。Pass-06无论是提示还是源码,你都会发现对大小写限制并不完全。在源码中缺少了全部转换为小写的函数。strtolower()上传一个1.Php或者1.phP即可。直接使用工具连接即可。Pass-07在源码中缺少了除去空格的函数trim()那么我们在上传名中加上一个空格就行了(抓包完成,你重命名肯定是不行原创 2021-08-04 11:02:22 · 671 阅读 · 6 评论 -
文件上传漏洞练习 upload-labs(1~5)【js过滤,MIME过滤,黑名单过滤,.htaccess文件攻击,.user,ini文件攻击】
文件上传漏洞练习 upload-labs(1~5)【入门】写在前面文件上传是个常见的漏洞,也是CTF的考察点之一。环境的搭建较为简单,放出链接:https://github.com/c0ny1/upload-labs我直接使用Windows集成包,放在php下面跑就行。因为隐私和web shell的特殊性,演示到上传成功就会结束题目来吧,现在就开始。Pass-01这是一个最为常见的js过滤,即只能使用图片格式的后缀,否则不予上传。方法一:先将脚本的后缀改为.jpg再上传,随后抓包改回来。原创 2021-07-25 23:39:13 · 990 阅读 · 7 评论 -
常见离线文件密码暴力爆破【rar,pdf】
写在前面密码的暴力破解,我们并不陌生,其思想也非常简单,成功与否就看字典如何,这里会简单介绍对这两类常见文件的暴力破解。你首先需要区分的是在线与离线的区别,在线即通过抓包来进行暴力破解,有专门破解的地方需要筛选以及爆破成功后的标志,一般使用bp来做。其次你要区分与john的区别,john一般是对密文进行明文解析,常用于对密码的爆破,hash碰撞等等,看似一样,但这类爆破是已知密文攻击,是你事先知道hash,md5等值后来进行的爆破。这里,是指的人为直接设置的密码,并且由于是文件密码,一般情况下你很难知原创 2021-07-17 19:19:12 · 2133 阅读 · 0 评论