熟悉kali_Burp

Ls、cd、cat、more、tail、cp、rm、top、ps、grep、ifconfig、netstat、awk、sort、fdisk、mount、dmesg、find、whereis.Echo、vi

这些是Linux系统中的常见命令,它们各自有不同的用途:

  1. ls:列出目录内容,可以显示文件和目录的信息。
  2. cd:改变当前工作目录,允许你在文件系统中导航。
  3. cat:显示或合并文件内容,常用于查看文本文件。
  4. more:分页显示文件内容,适合查看大型文件。
  5. tail:显示文件的末尾部分,通常用于监控日志文件。
  6. cp:复制文件或目录。
  7. rm:删除文件或目录(使用时需谨慎)。
  8. top:显示当前系统的进程状态和资源使用情况,实时更新。
  9. ps:显示当前运行的进程信息。
  10. grep:在文件中搜索匹配特定模式的行。
  11. ifconfig:配置和显示网络接口信息。
  12. netstat:显示网络连接、路由表、接口统计信息等。
  13. awk:强大的文本处理工具,可以处理行和字段。
  14. sort:对文件中的行进行排序。
  15. fdisk:磁盘分区管理工具,用于创建、删除和修改分区。
  16. mount:挂载文件系统,使你可以访问存储设备上的数据。
  17. dmesg:显示内核消息,常用于启动过程中的错误诊断。
  18. find:查找文件系统中的文件或目录,基于各种条件。
  19. whereis:查找命令、源代码或手册页的位置。
  20. echo:输出字符串到标准输出或文件,常用于脚本中。
  21. vi:一个强大的文本编辑器,用于创建和修改文本文件。

这些命令是Linux系统管理员和用户的日常工作中不可或缺的工具。

熟悉kali_Burp_02

查找 百度的子域名 去掉/前面的东西用^这个符号

sort -u 就是去掉重复的

熟悉kali_Python_03

就全部出来了

熟悉kali_Burp_04

碰到有url的加密 ,使用urlencode -d

如何写shell脚本

基本语法

1. 注释

  • 单行注释使用#开头。
# 这是一条注释

2. 变量

  • 定义变量时,不需要声明类型,直接赋值即可。
  • 使用变量时,需要在变量名前加$符号。
name="John"
echo $name

3. 命令替换

  • 使用反引号`$()包围命令,可以将命令的输出作为值赋给变量。
currentTime=`date`
currentTime=$(date)

4. 条件判断

  • 使用if语句进行条件判断。
if [ condition ]; then
    # commands
elif [ another_condition ]; then
    # more commands
else
    # even more commands
fi

5. 循环

  • for循环。
for i in {1..5}; do 
    echo $i
done
  • while循环。
count=1
while [ $count -le 5 ]; do
    echo $count
    count=$((count + 1)) 
done

6. 函数

  • 定义函数。
function_name() {
    # function body
}
  • 调用函数。
function_name

进阶技巧

1. 数组

  • 定义数组。
array=(item1 item2 item3)
  • 访问数组元素。
echo ${array[0]}

2. 字符串操作

  • 字符串长度。
str="Hello, World!" 
echo ${#str}
  • 子字符串。
substr=${str:7:5} 
echo $substr

3. 正则表达式

  • 使用grepsedawk等工具处理正则表达式。
# 使用grep匹配文本
echo "Hello, World!" | grep -o '[A-Za-z]*'

4. 文件操作

  • 检查文件是否存在。
if [ -e filename ]; then
    echo "File exists" 
fi
  • 读取文件内容。
while IFS= read -r line; do 
    echo "$line"
done < filename

5. 调试脚本

  • 使用set -x开启调试模式。
#!/bin/bash
set -x
echo "Debugging mode on"

6. 信号处理

  • 使用trap命令捕捉信号。
#!/bin/bash
trap 'echo "Signal caught"' SIGINT
sleep 10

7. 脚本参数

  • 使用$1$2, ... 访问脚本参数。
#!/bin/bash
echo "First argument: $1"
echo "Second argument: $2"

8. 环境变量

  • 设置环境变量。
export VARNAME=value
  • 使用环境变量。
echo $VARNAME

这些是Shell脚本的一些基本和进阶语法。编写复杂的脚本时,你可能还需要了解更多的概念和技术,如管道、重定向、进程控制等。不断实践和学习将帮助你成为一名熟练的Shell脚本开发者。

题外话

写一个burp插件

编写Burp Suite插件使用Python,你需要借助于Burp Suite的Extender API,特别是其对Java和Python交互的支持功能。从Burp Suite 2.0开始,它原生支持Python插件开发。以下是一个简单的指南,介绍如何开始编写一个基本的Python Burp插件。

准备工作

  1. 安装Jython: 因为Burp Suite是用Java编写的,它通过Jython(Python的Java实现)来运行Python插件。确保你已经安装了Jython。你可以从Jython官网下载并安装适合你系统的版本。
  2. 设置Burp Suite: 确保你的Burp Suite版本支持Python插件。打开Burp Suite,进入“Extender”标签页,点击“Options”,确保“Python environment”已被正确设置,并且路径指向你的Jython安装目录。
  3. 创建Python插件: 创建一个新的Python文件,比如my_burp_plugin.py。这个文件将包含你的插件逻辑。

编写基本插件

下面是一个非常基础的示例插件,该插件简单地打印出通过Burp Suite发送的所有HTTP请求的URL。

1from burp import IBurpExtender, IHttpListener
2
3class BurpExtender(IBurpExtender, IHttpListener):
4    
5    def registerExtenderCallbacks(self, callbacks):
6        # 获取Burp提供的回调对象
7        self._callbacks = callbacks
8        self._helpers = callbacks.getHelpers()
9        
10        # 设置插件名
11        self._callbacks.setExtensionName("My Simple Python Burp Plugin")
12        
13        # 注册为HTTP监听器
14        callbacks.registerHttpListener(self)
15    
16    def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo):
17        if messageIsRequest:
18            # 解码HTTP请求
19            request = self._helpers.analyzeRequest(messageInfo)
20            url = request.getUrl().toString()
21            print(f"[{toolFlag}] Request to: {url}")

部署插件

  1. 打包插件: 将你的Python脚本放在一个Burp Suite可以识别的目录下。通常,你可以直接在Burp Suite的Extender -> Options界面指定或添加Python插件的目录。
  2. 加载插件: 在Burp Suite的Extender标签页,点击“Add”按钮,然后从列表中选择你刚刚创建的.py文件。如果一切配置正确,你的插件应该会被加载并开始工作。

注意事项

  • 确保熟悉Burp Suite的API文档,了解如何使用IBurpExtenderIHttpListener等接口。
  • 开发复杂插件时,你可能需要处理更多细节,比如处理响应、动态修改请求、构建UI等。
  • 考虑到性能和兼容性,对于高性能需求的插件,Java可能仍然是首选。

编写Burp插件是一个实践性很强的过程,随着实践经验的积累,你会逐渐掌握更多高级功能的开发技巧。