ctf 常用shell命令 -回复

ctf 常用shell命令 -回复

CTF常用Shell命令

在CTF (Capture The Flag)竞赛中,参赛者需要解决一系列的安全问题,目标是获取被隐藏的"Flag",作为自己团队的战利品。CTF竞赛涵盖了许多领域,包括网络安全,密码学,反向工程等。Shell是我们日常中使用的命令行界面,在CTF竞赛中也被广泛应用。本文将介绍一些常用的Shell命令,帮助读者了解它们的作用以及如何应用它们来完成CTF任务。

1. 查找文件(find)

在CTF竞赛中,有时候我们需要查找隐藏在文件系统中的特定文件。find命令可以帮助我们快速地找到这些文件。它的基本语法如下:

find [目录] [选项]

其中,`[目录]`是需要查找的目录路径,`[选项]`可以是各种用于匹配文件的条件,例如按文件名、大小或者修改时间等。以下是几个常见的find命令用法示例:

- 查找某个文件(按文件名):

find / -name flag.txt

这个命令将从根目录开始递归地查找名为`flag.txt`的文件。

- 查找某个文件(按后缀名):

find / -name "*.pdf"

这个命令将从根目录开始递归地查找所有后缀名为`.pdf`的文件。

- 查找某个文件(按大小):

find / -size +1M

这个命令将从根目录开始递归地查找所有大小大于1MB的文件。

- 查找某个文件(按修改时间):

find / -mtime -7

这个命令将从根目录开始递归地查找在过去7天内修改过的文件。

2. 查看文件内容(cat、less)

在CTF竞赛中,我们经常需要查看文件的内容。cat和less是两个常用的命令,可以帮助我们实现这个目的。它们的基本用法如下:

- cat命令:

cat [文件路径]

这个命令将把文件的内容打印到终端。

- less命令:

less [文件路径]

这个命令将打开文件的内容,并可以使用上下键来滚动查看文件内容。

3. 压缩和解压缩文件(tar、gzip)

在CTF竞赛中,有时候我们需要处理一些压缩文件,例如将多个文件打包为一个文件,或者解压缩一个已压缩的文件。tar和gzip是两个常用的命令,用于打包和压缩文件。它们的基本用法如下:

- tar命令:

tar -cvf [目标文件名] [源文件/目录]

这个命令将把指定的源文件或目录打包成一个.tar文件。

- gzip命令:

gzip [文件]

这个命令将对指定的文件进行压缩,并生成一个.gz文件。

4. 文本处理(grep、awk、sed)

在CTF竞赛中,我们经常需要从文本文件中提取有用的信息。grep、awk和sed是三个常用的命令,用于实现文本的搜索和处理。它们的基本用法如下:

- grep命令:

grep [搜索关键词] [文件路径]

这个命令将搜索指定文件中包含搜索关键词的行,并将其输出到终端。

- awk命令:

awk '{print 1}' [文件]

这个命令将打印指定文件中每一行的第一个字段。

- sed命令:

sed 's/old/new/g' [文件]

这个命令将在指定文件中将所有的`old`替换为`new`。

5. 进程管理(ps、kill)

在CTF竞赛中,我们有时候需要管理正在运行的进程,例如查找特定进程的PID(进程ID),或者终止一个进程。ps和kill是两个常用的命令,用于进程管理。它们的基本用法如下:

- ps命令:

ps -aux grep [进程名]

这个命令将列出所有正在运行的进程,并用grep过滤出包含指定进程名的行。

- kill命令:

kill [PID]

这个命令将终止指定PID的进程。

总结:

这篇文章介绍了一些CTF竞赛中常用的Shell命令。通过使用这些命令,我们可以在竞赛中更高效地查找文件、查看文件内容、压缩和解压缩文件、处理文本以及管理进程。这些命令只是Shell的冰山一角,还有许多其他有用的命令等待我们去探索和应用。不断学习和实践这些命令,将帮助我们提高在CTF竞赛中的技能和表现。

合集下载

常用shell命令

常用shell命令

clear 清屏

cd – 后退

cd $MYPATH 进入指定目录(环境变量已设)

ls –l 列出文件

ls –al 列出所有文件,包含隐藏文件

whoami 查看自己用户名

cd mydir 进入目录

cd my* 进入目录

tar cvf ddd.tar abc.* def ghi 压缩文件(可以多个)

tar xvf ddd.tar 解压缩

rm –rf mydir 删除目录,不带确认

grep abc *.pc 文件内容中查找abc

grep –c abc *.txt 查找内容abc,并统计

grep –i abc *.txt 查找内容abc,大小写不敏感

set|grep TL_ABC 在环境变量中过滤TL_ABC

diff abc.txt /usera/def.txt 比较文件

find . –name “abc*” 目录中查找文件

cp –p abc.txt /mydir/abc_d.txt 拷贝

ps –ef|grep UserA 列出某用户的进程

shellABC.sh > abc.log 覆盖输出

shellABC.sh >> abc.log 追加输出

exit 退出

su –userABC 切换用户

last 查看最近登录的用户

Esc+K 重复上次输入的命令(多次k向上翻)

编辑上次的命令: Esc+i 插入 Esc+x 删除 h 向左 l 向右

ipcs –oq|grep 5000 查看消息队列

make 自动查找目录下的makefile并编译

man sighold 查看该函数定义 man socket cat abc.txt

查看文件

more abc.txt 分页查看文件

vi abc.txt 编辑文件

netstat –i 查看网卡

netstat –r 查看路由

alias pss=’ps –ef|grep abc’ 设置快捷shell名pss,常用在.profile中

常用shell脚本命令总结

常用shell脚本命令总结

1、显示包含文字aaa的下一行的内容:

sed -n '/aaa/{n;p;}' filename

2、删除当前行与下一行的内容:

sed -i '/aaa/{N;d;}' filename

3、 删除当前行与下两行的内容:

sed -i '/aaa/{N;N;d;}' filename

依次类推,删除三行,则为{N;N;N;d;},分析知:N为next

4、得出以空格为分割的字符串中单词的个数,即统计个数:

awk ' { print NF } '

如显示字符串VALUE中的单词个数,其中VALUE为:aaa bbb ccc ddd ee f

则执行 echo $VALUE | awk ' { print NF } ' 后的结果为6

5、在linux中建立一个文件与另一文件的链接, 即符号链接

ln -s /var/named/chroot/etc/named.conf named.conf

这要就建立了当前目录的文件named.conf对/var/named/chroot/etc/named.conf 的符号链接。即操作named.conf就意味着操作实际文件/var/named/chroot/etc/named.conf ,这时用ll命令查看的结果如:

lrwxrwxrwx 1 root root 32 Mar 22 12:29 named.conf ->

/var/named/chroot/etc/named.conf

注意:当用sed来通过named.conf来删除一部分信息时,会将符号链接的关系丢掉,即会将named.conf变成一个实际文件。所以 需对实际文件进行删除操作。

6、显示指定字符范围内的内容:

如:显示文件test.txt中字符#test begin与#test end之间所有的字符

shell常用命令

shell常用命令

shell常⽤命令

shell 常⽤命令

expect

expect 命令是⽤来实现⾃动化交互通信的,⽐如当你在脚本中通过某些命令登录、连接、上传、下载等和远程服务器的交互时,可能需要让你输⼊⼀

些账号、密码等信息

如果这个过程是⼈⼯⼿动在终端执⾏的,那没啥问题,需要交互时,你⼿动输⼊即可

但如果这个过程是交由脚本来⾃动执⾏的,难不成每次脚本执⾏时,还需要你在旁边等着来输密码吗?

所以,就可以借助 expect 来实现这个交互过程

可以先⽤ whereis 命令查找看看,是否⽀持 expect 命令,否则需要⾃⾏安装

whereis expect

# expect: /usr/bin/expect /usr/share/man/man1/expect.1.gz

安装

# Centos 系统的安装,其余的⾃⾏查阅

#先下载 tcl,expect 依赖 tcl

yum -y install tcl

#再下载 tcl

yum -y install expect

#安装完执⾏ expect,查看是否安装成功,失败原因请⾃⾏查阅

[root@VM_0_15_centos test]# expect

expect1.1> 基本命令

spawn:⽤于启动⼀个⼦进程来执⾏后续命令

expect eof:⽤来退出 spawn 启动的⼦进程,返回到当前进程环境,与 spawn 成对出现

expect:⽤于接收进程的输出信息(输出重定向到 expect),如果接收的字符串与期待的不匹配,则⼀直阻塞,直到匹配上或者超过才继续往下执⾏

send:⽤于向进程发送输⼊信息(输⼊重定向到 send),通常需要以 \n 结尾

set timeout 1:⽤于设置 expect 命令的超时时间,单位 s,输⼊ -1 时表⽰⽆限长,默认为 10s

[lindex $argv n]:⽤于获取传⼊给脚本的参数,n 表⽰第⼏个参数,下标从 0 开始

set key value:⽤于设置变量,通常在脚本⽂件开头结合上⾯获取参数使⽤,来给参数赋值个有意义的变量,如 set ip [lindex $argv 0]

shell脚本常用命令汇总

shell脚本常用命令汇总

shell脚本常⽤命令汇总

⼀、shell脚本概述和⼊门

(1)shell脚本是⼀个命令⾏解释器,它接收应⽤程序/⽤户命令,然后调⽤操作系统内核

(2)shell脚本的常⽤执⾏⽅式:

第⼀种:采⽤bash或sh+脚本的相对路径或绝对路径(不⽤赋予脚本+x执⾏权限) sh(bash) test.sh

第⼆种:采⽤输⼊脚本的绝对路径或相对路径执⾏脚本(必须具有可执⾏权限+x) ./test.sh

注意:第⼀种执⾏⽅法,本质是bash解析器帮你执⾏脚本,所以脚本本⾝不需要执⾏权限。第⼆种执⾏⽅法,本质是脚本需要⾃⼰执⾏,所以需要执⾏权限。

⼆、shell中的变量 

(1)系统变量:

$HOME(家⽬录)、$PWD(当前路径)、$SHELL(shell环境)、$USER(当前⽤户)等

(2)⾃定义变量:

定义变量:变量=值

撤销变量:unset 变量

声明静态变量:readonly变量,注意:不能unset

(3)特殊变量:

$n:(功能描述:n为数字,$0代表该脚本名称,$1-$9代表第⼀到第九个输⼊参数,⼗以上的参数需要⽤⼤括号包含,如${10})

$#:(功能描述:获取所有输⼊参数个数,常⽤于循环)。

$*:(功能描述:这个变量代表命令⾏中所有的参数,$*把所有的参数看成⼀个整体)

$@:(功能描述:这个变量也代表命令⾏中所有的参数,不过$@把每个参数区分对待)

$?:(功能描述:最后⼀次执⾏的命令的返回状态。如果这个变量的值为0,证明上⼀个命令正确执⾏;如果这个变量的值为⾮0(具体是哪个数,由命令⾃⼰来决定),则证明上⼀个命令执⾏不正确了。)

三、运算符和条件判断:

(1)运算符常⽤语法:

$((运算式)) 或 $[运算式]

expr + , - , \*, /, % 加,减,乘,除,取余 注意:expr运算符间要有空格 `expr 1 + 2`

(2)条件判断基本语法:

[ condition ](注意condition前后要有空格)条件⾮空即为true,[ abc ]返回true,[] 返回false。

Linux Shell常用命令总结

Linux Shell常用命令总结

1. find

find pathname -options [-print -exec -ok]

让我们来看看该命令的参数:

pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print find命令将匹配的文件输出到标准输出。

-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{}和\;之间的空格,同时两个{}之间没有空格,

注意一定有分号结尾。

0) -ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

find . -name "datafile" -ctime -1 -exec ls -l {} \; 找到文件名为datafile*, 同时创建实际为1天之内的文件, 然后显示他们的明细.

find . -name "datafile" -ctime -1 -exec rm -f {} \; 找到文件名为datafile*, 同时创建实际为1天之内的文件, 然后删除他们.

find . -name "datafile" -ctime -1 -ok ls -l {} \; 这两个例子和上面的唯一区别就是-ok会在每个文件被执行命令时提示用户, 更加安全.

find . -name "datafile" -ctime -1 -ok rm -f {} \;

1) find . -name 基于文件名查找,但是文件名的大小写敏感.

find . -name "datafile*"

2) find . -iname 基于文件名查找,但是文件名的大小写不敏感.

web-exec的狡猾的cuso4的解题思路

web-exec的狡猾的cuso4的解题思路

web-exec的狡猾的cuso4的解题思路

Web-Exec是一款针对程序员和CTF选手开发的在线编程环境,它可以运行用户提交的代码并返回代码执行结果。但这也意味着Web-Exec存在安全漏洞,其中最为常见的就是代码注入漏洞。其中,利用代码注入漏洞实现的CUso4题目成为了CTF比赛中的常客,下面我们就来一起探究一下这道CUso4题目的解题思路。

首先我们需要了解的是,CUso4这道题可以分为两个部分,分别是:源代码审计和代码注入。

源代码审计是这道题的第一步,我们需要对题目调用的程序进行审计,理解程序的运行原理与特性。在CTF的比赛中,我们一般使用的是源代码审计的方法,这种方法可以让我们更加精确地定位存在漏洞的代码,从而更加快速地解题。在审计CUso4这道题目时,我们需要关注的主要是题目调用的php文件,这里的代码可以看到是通过shell_exec()函数执行了用户提交的代码。然而,shell_exec()函数是非常危险的,因为它允许用户直接执行系统命令,而这些命令往往会涉及非常敏感的系统文件和信息,因此我们需要对用户提交的代码进行过滤和限制。

代码注入是这道题的第二步,我们需要利用源代码审计找到的漏洞来进行代码注入,从而获取答案信息。对于CUso4这道题来说,我们可以通过构造Payload来实现代码注入,最常用的Payload有两种,分别是:php://filter方法和反引号注入方法。

php://filter方法是一种非常常见的Payload构造方法,它的原理是利用php的过滤器机制,将用户提交的代码通过过滤器进行处理后再执行,从而实现对用户代码的过滤和限制。反引号注入方法则是利用php中反引号的特性,将需要执行的系统命令通过反引号引起来,并将结果返回给用户。这种方法需要用户具有一定的系统命令的知识,但是相对来说更加直观和易于理解。

在进行代码注入的时候,我们需要注意一些细节上的问题,比如注入的位置、注入的方式、注入的语法正确性等等,这些都是需要我们在解题过程中不断调试和尝试的。

HBase 常用Shell命令

两个月前使用过hbase,现在最基本的命令都淡忘了,留一个备查~

hbase shell命令 描述

alter 修改列族(column family)模式

count 统计表中行的数量

create 创建表

describe 显示表相关的详细信息

delete 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值)

deleteall 删除指定行的所有元素值

disable 使表无效

drop 删除表

enable 使表有效

exists 测试表是否存在

exit 退出hbase shell

get 获取行或单元(cell)的值

incr 增加指定表,行或列的值

list 列出hbase中存在的所有表

put 向指向的表单元添加值

tools 列出hbase所支持的工具

scan 通过对表的扫描来获取对用的值

status 返回hbase集群的状态信息

shutdown 关闭hbase集群(与exit不同)

truncate 重新创建指定表

version 返回hbase版本信息

要注意shutdown与exit之间的不同:shutdown表示关闭hbase服务,必须重新启动hbase才可以恢复,exit只是退出hbase shell,退出之后完全可以重新进入。

hbase使用坐标来定位表中的数据,行健是第一个坐标,下一个坐标是列族。

hbase是一个在线系统,和hadoop mapreduce的紧密结合又赋予它离线访问的功能。

hbase接到命令后存下变化信息或者写入失败异常的抛出,默认情况下。执行写入时会写到两个地方:预写式日志(write-ahead log,也称hlog)和memstore,以保证数据持久化。memstore是内存里的写入缓冲区。客户端在写的过程中不会与底层的hfile直接交互,当menstore写满时,会刷新到硬盘,生成一个新的hfile.hfile是hbase使用的底层存储格式。menstore的大小由hbase-site.xml文件里的系统级属性hbase.hregion.memstore.flush.size来定义。

shell常用命令大全

一、文件目录类命令

1、查看联机帮助信息

man命令如:#manls

info命令如:#infocd

2、列出当前目录或指定目录的文件名和目录名

ls[选项]文件或目录

常用[选项]如下:

-a:显示所有的文件,包括以“.”开头的隐含文件。

-l:长格式输出

-m:宽行输出

-F:以各种符号表示不同的文件类型

--color:彩色输出

-R:递归输出

3、touch

功能:修改文件的创建日期或以当前系统日期创建一个空文件。

-d:修改文件的日期。#touch–d20030123test.txt

4、cp

功能:复制文件

用法:cp[选项]源文件或目录目标文件或目录

选项:

a:该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

-d拷贝时保留链接。

-f删除已经存在的目标文件而不提示。

-i和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答

y时目标文件将被覆盖,是交互式拷贝。

-p此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复

制到新文件中。

-r若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的

子目录和文件。此时目标文件必须为一个目录名。

5、mv

功能:给文件或目录改名或将一个文件或目录移到另一个目录

用法:mv[选项]源文件或目录目标文件或目录

-i交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此

时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。

-f禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指

示,指定此选项后,i选项将不再起作用。

6、rm

功能:删除文件或目录

用法:rm[选项]文件…

-f强制删除

-r指示rm将参数中列出的全部目录和子目录均递归地删除。

-i进行交互式删除7、cd

功能:改变工作目录。

语法:cd[directory]

用法:

#cd..返回上一层目录

#cd~进入自家目录

8、pwd

功能:显示当前工作目录

用法:#pwd

9、mkdir

win7常用shell命令解析

win7常用shell命令解析

Windows7系统相对以前版本的Windows系统,拥有更高的稳定性、兼容性、人性化等等各式各样的服务。而Windows7中的shell命令行,则是许多用户都没有发现的又一重要更新,Windows7shell是Windows7系统的控制台。对于熟悉了命令行的人来说,用键盘调用程序比鼠标更快更省力。

搜索框

shell:Profile 该命令能打开用户的总目录。一般它的总目录的位置是c:usersusername。可以通过点击系统开始菜单上的用户名称访问。

shell:Profile shell:Personal 该命令可以打开当前用户的文档文件夹。也可以通过点击开始菜单中的我的文档进行访问。

shell:SendTo 该命令可以打开“发送到”文件夹。

shell:Public 该命令可以打开公用共享文件夹。

shell:CommonStartup和shell:Startup 该命令可以显示哪些程序在系统启动时会自动启动。

shell:ConnectionsFolder 该命令可以显示当前网络连接。通常的方法是单击网络和共享中心,然后选择更改适配器设置查看。 shell:programs和shell:CommonPrograms 这两个命令可以访问当前用户和系统用户开始菜单中的程序列表。

shell:AppData和shell:LocalAppData 这两个命令可以打开RoamingApplicationData文件夹LocalApplicationData文件夹。这两个文件夹在日常应用中不常用到的。

shell:Cookies和shell:cache 这两个命令是查看InternetExplorer存储信息最快捷的方式。

HBase常用shell命令

hbase shell命令 描述

alert 修改列族(column family)模式

count 统计表中行的数量

create 创建表

describe 显示表相关的详细信息

delete 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值)

deleteall 删除指定行的所有元素值

disable 使表无效

drop 删除表

enable 使表有效

exists 测试表是否存在

exit 退出hbase shell console

get 获取行或单元(cell)数据

incr 增加指定表,行或列的值(?)

list 列出hbase中存在的所有表

put 向指定的表单元添加值

tools 列出hbase所支持的工具

scan 通过对表的扫描来获取对应的值

status 返回hbase集群的状态信息

shutdown 关闭hbase集群(与exit不同)

truncate 重新创建指定表

version 查看hbase版本信息

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档