自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 问答 (1)
  • 收藏
  • 关注

原创 [HFCTF2020]EasyLogin(node.js的koa框架、jwt攻击方法)

1、node.js koa的主要框架目录创建一个rest-hello的工程,结构;2、jwt攻击方法深入了解Json Web Token之概念篇深入了解Json Web Token之实战篇 总的来说,jwt由三部分组成:Header.Payload.Signature。攻击的办法之一可以把header中alg字段更改为’none’,且Payload的secretid为空,即没有Signature因为sid为空时,jwt将采用none algorithm解密,即对应了将alg='none’的加密

2021-02-11 12:47:51 425 2

原创 CDN检测与绕过

0x00 CDN定义CDN的全称是Content DeliveryNetwork,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。目的:传输的更快、更稳定0x01 CDN检测方法检测方法:超级ping,nslookup(返回多个地址则采用了cdn)0x03 CDN绕过方法子域名查询:子域名

2021-02-08 16:33:04 1385

原创 web安全学习之浏览器安全

0x00 同源策略同源策略:限制了来自不同源的document或脚本对当前document读取或设置某些属性决定是否属于同一源的三大部分:协议、域名、端口浏览器中,一些src属性(<script>,<img>,<iframe>,<link>)并不受同源策略限制,但浏览器限制了JavaScript的权限,使其不能读、写加载的资源内容,每次通过src加载资源,都相当于一次get请求XMLHttpRequestXMLHttpRequest(XHR)对象

2021-02-07 20:30:29 253 1

原创 [网鼎杯 2020 朱雀组]phpweb(各种读取文件函数,call_user_func()函数和序列化绕过)

知识点读取文件的方法readfile,file_get_contents,highlight_filecall_user_func()第一个参数 callbac 是被调用的回调函数,其余参数是回调函数的参数序列化题解:由于页面不断刷新,所以抓包分析下post传入了参数data和一串类似日期格式的东西合理推测是使用了call_user_func()函数,并将date()作为回调函数,由此输出了上面红色框部分func=readfile&p=index.php

2021-02-04 22:39:09 794

原创 [De1CTF 2019]SSRF Me(Flask框架的代码审计)

参考文章:Flask框架快速入门学习#! /usr/bin/env python#encoding=utf-8from flask import Flaskfrom flask import requestimport socketimport hashlibimport urllibimport sysimport osimport jsonreload(sys)sys.setdefaultencoding('latin1')app = Flask(__name__)sec

2021-02-04 21:55:28 750

原创 [BJDCTF2020]ZJCTF,不过如此(读取文件、preg_replace与代码执行)

知识点伪协议读取文件深入研究preg_replace与代码执行/e模式的preg_replace,有一个远程代码执行漏洞:/e 修正符使 preg_replace() 将 replacement 参数(第二个参数,字符串)当作 PHP 代码执行(其实php双引号都能导致代码执行的)。题解先读取next.php的源码(与上题方法一样) preg_replace('/(' . $regex . ')/ei', 'strtolower("\\1")', $value);\\1其实就是\1,\

2021-02-04 20:53:29 148

原创 [BJDCTF2020]The mystery of ip(xff中的php模板注入)

在hint.php中发现Do you know why i know your ip?的提示首先想到xff伪造本地ipip确实改变但flag并没有出现(是我鲁莽了 )参考网上的题解原来是xff中存在php模板注入尝试在xff头中执行命令ls哦~成功了,美滋滋地去查看flag.php真是除了源码啥也没发现~~$smarty->display("string:".$ip); 这里发现原来是用采用了smarty模板引擎,字符串代替smarty模板,没有经过任何过滤,产生了模板注入漏

2021-02-04 17:28:50 186

原创 [BJDCTF2020]Mark loves cat(.git源码泄露与代码审计之变量覆盖漏洞)

知识点:php中$$用来定义可变变量解题:<?phpinclude 'flag.php';$yds = "dog";$is = "cat";$handsome = 'yds';foreach($_POST as $x => $y){ $$x = $y; #若传入x=y,则$x=y}foreach($_GET as $x => $y){ $$x = $$y; #若传入x=y,则$x=$y}foreach($_GET as $x =&

2021-02-04 16:23:48 265

原创 [安洵杯 2019]easy_web(PHP反斜杠匹配问题)

知识点:linux命令绕过cat flag --> ca\t fl\ag强类型绕过md5if((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b']))payloada=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%9

2021-02-04 14:38:09 248

原创 模板注入学习

模板引擎:是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。模板渲染:拿到数据,塞到模板里,然后让渲染引擎将塞进去的东西生成 html 的文本,返回给浏览器好处:展示数据快,大大提升效率。后端渲染:服务器计算好最终的html字符串发送给用户,即浏览器只需要进行html解析以及通过操作系统提供的操纵显示器显示内容的系统调用在显示器上把HTML所代表的图像显示给用户。好处:模板统一在后盾,前端(相对)省事,不占用客户端运算资

2021-02-03 17:25:50 2387

原创 [SUCTF 2019]CheckIn(user.ini文件构成的PHP后门)

user.ini文件构成的PHP后门

2021-02-02 16:25:41 147

原创 [ZJCTF 2019]NiZhuanSiWei(伪协议读取文件)

0x01 知识点1、data协议用于数据流的读取data://text/plain;base64,xxxx(base64编码后的数据)data伪协议只有在php<5.3且allow_url_fopen :on,allow_url_include:on时可以写木马。2、php伪协议:可结合文件包含漏洞读取文件源码或执行文件需要开启allow_url_fopen的:php://input、php://stdin、php://memory和php://temp不需要开启allow_wrl_fo

2021-02-02 16:07:38 492

原创 [RoarCTF 2019]Easy Java

知识点:WEB-INF/web.xml泄露WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。WEB-INF主要包含一下文件或目录:/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .

2021-01-29 15:33:20 104

原创 [BUUCTF 2018]Online Tool

好难一题~~知识点:escapeshellarg1.确保用户只传递一个参数给命令2.用户不能指定更多的参数一个3.用户不能执行不同的命令功能 :escapeshellarg() 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入shell 函数,shell 函数包含 exec(), system() 执行运算符(反引号)任何单引号都会被加上\转义,且转义后用一对单引号括起来,变成'\''escapeshellcmd1.确保用户只执行一个

2021-01-27 11:00:11 112 1

原创 [网鼎杯 2020 青龙组]AreUSerialz(php不同属性序列化、php伪协议读取文件)

知识点:序列化与反序列化protected修饰的属性被序列化时,会加上\00*\00前缀private修饰的属性被序列化时,会加上\00类名\00前缀php伪协议读取文件内容php://filter/convert.base64-encode/resource=文件名打开靶场发现源码<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler { protected $op;

2021-01-24 10:48:39 213 1

原创 [GXYCTF2019]Ping Ping Ping(linux命令下绕过)

1、绕过空格${IFS}$IFS$9?ip=1%20|%20ls提示不能使用空格?ip=1|ls发现了flag.php和index.phpcat${IFS}flag.php好像有什么符号又被过滤了,换一种空格绕过?ip=1|cat$IFS$9flag.phpflag被过滤了那就看看index.php吧发现flag四个字符按照顺序排列被绕过了...

2021-01-03 08:53:26 531

原创 buuctf [HCTF 2018]admin(flask cookie伪造)

知识点1、flask cookie伪造2、flask中的SECRET_ KEY值作用Flask、Django的 secret key 设置有什么用?SECRET_KEY配置变量是通用密钥,可在Flask和多个第三方扩展中使用其名所示,加密的强度取决于变量值的机密度.不同的程序要使用不同的密钥,而且要保证其他人不知道你所用的字符串,SECRET_KEY的作用主要是提供一个值做各种HASH,主要的作用应该是在其加密过程中作为算法的一个参数(salt或其他).所以这个值的复杂度也就影响到了数据传输和存储

2021-01-02 22:56:07 1072

原创 Easy MD5

知识点:1、MD5(str,true)绕过当raw项为true时,返回的这个原始二进制不是普通的二进制(0,1),而是 'or’6\xc9]\x99\xe9!r,\xf9\xedb\x1c 这种。随便输入有提示:select * from 'admin' where password=md5($pass,true)构造payload password=ffifdyop原理:https://blog.csdn.net/march97/article/details/81222922htt

2021-01-02 22:50:41 359

原创 buuctf BabySQli

随便输入,发现一串密文,数字+大写字母,大概是采用base32加密base32解密如下,有“=”,猜测是base64加密base64解密如下查询后台数据库username等于输入值得所有数据后台数据库的登录逻辑大概是:将输入的用户名与后台数据库中的所有用户名做比较,找出相等的,然后用这组数据的密码与用户输入的密码作比较,若相等,则登录成功重要点:放置于后台的数据库大概率是经过hash加密的操作:在用户名框注入1’ union select ‘admin’,加密后的密码为了使登录成功,注入

2021-01-02 15:36:27 1040

原创 buuctf php(扫描网站备份文件和反序列化漏洞)

知识点:1、扫描网站备份文件别人写的备份文件url生成字典脚本import osimport os.pathimport requestsfrom urllib.parse import unquotesuffixList = ['.rar','.zip','.tar','.tar.gz']keyList = ['www','wwwroot','site','web','website','backup','data','mdb','WWW','新建文件夹','ceshi','databa

2020-12-30 15:43:42 1129

原创 buuctf Easy Calc(HTTP请求走私和PHP字符串解析特性)

知识点:1、PHP字符串解析特性2、scandir() 返回指定目录中的文件和目录的数组。readfile() 输出一个文件var_dump()此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值file_get_contents()将一个文件读入字符串中3、绕过过滤方法:用chr()转ascii再进行拼接题目:<?phperror_reporting(0);if(!isset($_GET['num'])){ show_source(__FILE__);}e

2020-12-30 13:55:04 296

原创 pyquery的使用

初始化方式:直接传入URL,字符串,文件名如:from pyquery import PyQuery as pqres=pq(url="https://www.baidu.com/")print(res('title'))pyquery对象会将请求URL的html初始化,上述代码相当于from pyquery import PyQuery as pqimport requestsdoc = pq(requests.get("https://www.baidu.com/").text)pr

2020-12-23 09:45:00 151 1

原创 密码攻击

一、密码在线破解1、Hydra工具:支持几乎所有协议的在线密码破解,如ftp,http,https,mysql…1)启动Hydra攻击2)、target页面如下passwords界面tuning选项卡设置任务的编号和超时时间,如果任务太多,服务的响应速率下降,将原来默认的任务编号16修改为2,超时时间改为15,将Exit after first found pair复选框勾上,找到第一匹配时停止攻击3)、单击start进行攻击2、medusa工具:通过并行登录暴力破解的方法,尝试获取

2020-12-14 14:02:09 757

原创 使用SET实施攻击

1、针对性钓鱼攻击向量1)启动社会工程学2)选择社会工程学(1)3)选择攻击类型,这里选择钓鱼攻击向量(1)输出信息中显示了钓鱼攻击向量的可用工具载荷4)这里选择电子邮件攻击(1)输出的信息显示了钓鱼向量中可以使用的文件格式,默认是PDF格式5)这里利用的是Abobe PDF的Collab.collectEmaillnfo漏洞,所以选择编号8输出信息显示了攻击的方式6)这里选择第二个模块攻击载荷创建完成,询问是否要重命名文件7)使用默认文件(1)输出信息显示了邮件攻击的方式

2020-12-13 20:25:58 547

原创 权限提升(SET)

1、使用假冒令牌1)、启动meterpreter会话,执行命令sessions -i 12)、use incognito加载incognito模块,然后列举出令牌3)、help查看帮助信息,了解列举令牌的命令4)、list_tokens -u 列举出所有的令牌5)、impersonate_token命令假冒用户进行攻击impersonate_token user2、本地权限提升1)、启动meterpreter会话sessions -i 12)、使用getsystem命令提升本地权限、

2020-12-13 15:21:04 450

原创 Metasploit使用教程(操作实例,meterpreter,msfconsole,msfcli,抓包)

1、控制Metasploit终端(MSFCONSOLE)MSFCONSOLE主要用于管理Metasploit数据库,管理会话,配置并启动Matasploit模块一些通用命令:help:该命令允许用户查看执行命令的帮助信息use module:该命令允许用户加载选择的模块set optionname module:该命令允许用户为模块设置不同的选项。run:该命令用来启动一个非渗透攻击模块search module:该命令允许用户搜索一个特定的模块exit:退出MSFCONSOLE操作步骤:

2020-12-13 11:24:24 6190 1

原创 Nessus使用教程

新建策略该页面选择创建策略类型,Nessus默认支持10种策略类型,这里选择Advanced Policy类型在该页面中设置策略名和描述信息若知道目标主机的账号和密码,则在Credentials中填写,Linux点击ssh,windows选择windowsplugins中选择插件程序,默认是全部启动例如:扫描网站漏洞需要的插件程序CISCO 扫描CISCO系统DNS 扫描DNS服务器Default Unix Accounts 扫描本地默认用户账号和密码FT

2020-12-01 15:15:25 2197

原创 kali学习-测试网络范围

域名查询工具DMitry:查询ip或域名whois信息-o输出到指定文件中-i whois查询,后跟IPv4地址-w whois查询,后跟字符串形式的主机名-n 获取相关主机的netcraft.com信息,包括主机操作系统、web服务上线和运行时间信息。-s 可能的子域名-e 针对目标主机执行Email地址查询-p TCP端口扫描-f 让TCP扫描器输出过滤的端口信息-b 让TCP扫描器输出端口banner-t 设置端口扫描的TTL,默认是2秒实战:dmitry -wnpb rz

2020-11-28 14:57:56 472

原创 FTP的主动模式和被动模式

FTP服务器:File Transfer Protocol文件传输协议2.端口号:TCP 20/213. FTP工作方式:1)主动模式(建议服务器开防火墙时使用)21:控制端口20:数据端口2)被动模式21端口+随机端口注意:主被动模式,阐述的是数据传输过程主被动模式, 选择权在客户机上!主被动模式,所谓主或被是站在服务器的角度...

2020-11-28 13:19:39 657

原创 kali学习-枚举服务

枚举服务:允许用户从一个网络中收集一类的所有相关信息DNS枚举工具DNSenum:域名信息收集工具,能够通过谷歌或字典文件猜测可能存在的域名,并对一个网段进行反向查询。不仅可以查询网站的主机地址信息、域名服务器和邮件交换记录,还可以在域名服务器上执行axfr请求,然后通过谷歌脚本得到扩展域名信息,提取子域名并查询,最后计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。实战:dnsenum csdn.net -vDNS枚举工具fierce:和dnsenum工具性质差不多,主要

2020-11-28 11:22:14 363

原创 不再显示错误的盲注(布尔盲注和时间盲注)

Blind SQL (盲注) : 是注入攻击的其中一种, 向数据库发送 true 或 false 这样的问题,并根据应用程序返回的信息判断结果. 这种攻击的出现是因为应用程序配置为只显示常规错误, 但并没有解决SQL 注入存在的代码问题.1、发现盲注正常输入和错误输入的结果是不一样的,但不会显示报错2、基于时间的盲注id=1' and if(ascii(substr(database(),1,1))=115,sleep(3),0) --+if(expr1,expr2,expr3)若表.

2020-11-25 17:35:25 222

原创 sqli_labs闯关2-9

Less2 基于整数报错的注入当id=1’时,报错信息为’ LIMIT 0,1,说明 查询条件为where xx=id,id是一个整数使用union select即可Less 3 基于单引号加括号当id=1’,报错信息 ‘1’’) LIMIT 0,1,分析查询语句条件where xx=‘id’)使用id=0') union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=d

2020-11-25 17:33:13 102

原创 基于报错的sql注入

MYSQL中默认有个information schema数据库,用来存储数据库元信息。其中具有表schemata(数据库名)、tables(表名)、 columns(列名或字段名)。schemata:schema_ name字段用来存储数据库名。tables:table_ schema和table_ name分别用来存储数据库名和表名。columns:table_schema(数据库名)、table_name(表名)、column name(字段名)1、发现SQL注入根据报错信息'1'' LIM

2020-11-21 09:55:32 302

原创 攻防世界之upload1

题目:WP:查看部分代码可知只允许上传图片文件,先随便上传一张图片试试上传图片后我们能看到图片上传的路径,访问试试成功了,由此想到一句话木马编写文件flag.php制作木马文件将木马文件上传此时木马文件躲过了前端测试,将后缀改为.php上传成功,查看木马文件浏览器解析乱码了,但没事,接下来用蚁剑连接找到flag啦~...

2020-11-17 15:09:53 404

原创 攻防世界之unserialize3

题目:WP:新知识:serialize:序列化函数,将对象转化为可保存可传输的字符串unserialize:反序列化,将字符串转为原来的对象<?php$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut'); //序列化数组$s = serialize($a);echo $s;//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c"

2020-11-17 13:01:46 225

原创 攻防世界之PHP2

题目:WP:打开题目,查看了源码,挺莫名其妙的搜索后发现,可以访问index.phps–index.php的源代码php源码文件为phps,url会自动解码一次分析代码可知,我们要得到key是第一个if的时候,要使id不等于admin,但经过url解码后,又要等于admin,提一下url编码:%+字符对应的US-ASCIIurl中id的值传入后,页面解析时会自动自动进行url解码一次,所以我们可以将a进行两次编码,第一次编码%61,第二次编码后为%2561,令id=%...

2020-11-17 12:31:50 587

原创 攻防世界之NaNNaNNaNNaN-Batman

题目WP:很显然是一个包含js的文件,将文件名后缀改外.html浏览器打开没有反应,查看源代码如下基本上是乱码,最后有个eval()函数,执行了_变量,我们将eval()改成alert()将_变量弹出eval() 函数:可计算某个字符串,并执行其中的的 JavaScript 代码。alert() 函数:用于显示带有一条指定消息和一个确定按钮的警告框。再次用浏览器打开文件,出现以下弹窗将上述代码调整后得到如下function $() { var e = document.g

2020-11-17 12:02:13 193

原创 攻防世界之web2

题目:WP:代码审计<?php$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){ $_o=strrev($str); // echo $_o; for($_0=0;$_0<strlen($_o);$_0++){ $_c=substr($_o,$_0,1); $_

2020-11-17 09:46:52 222

原创 攻防世界之NewsCenter

题目WP在searchnew中随意输入字符串,burpsuite抓包发现输入的字符串以post形式提交给了search参数将http请求打包,用sqlmap探测search参数是否存在sql注入风险注入成功接下来直接将后台数据库直接输出sqlmap -r searech -p search --dump找到flag啦~手动注入:发现哪一列可以回显打印数据库的表search=0' union select 1,group_concat(table_name),3 from

2020-11-17 09:13:42 269

原创 攻防世界之warmup

题目:WP:只有一张没显示好的图片,右键查看源代码提示source.php,访问该页面接下来进行代码审计<?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) { $whitelist = ["source"=>"source.php","hint"=>"hint.php"

2020-11-17 08:35:12 275

空空如也

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

TA关注的人

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