一、web安全基础入门

发布于:2025-05-22 ⋅ 阅读:(14) ⋅ 点赞:(0)
1、Windows命令
  • 文件和目录操作
    • dir:列出当前目录下的文件和子目录。
    • cd:切换目录,例如 cd C:\Users 切换到C盘的Users目录。
    • mdmkdir:创建新目录,如 md testdir
    • rdrmdir:删除空目录,例如 rd testdir
    • copy:复制文件,如 copy source.txt destination.txt
    • move:移动文件或重命名,move oldname.txt newname.txt 可重命名文件,move file.txt C:\newpath 可移动文件。
    • delerase:删除文件,del test.txt 删除test.txt文件。
  • 系统信息
    • systeminfo:显示详细的系统信息,包括操作系统版本、安装的补丁等。
    • ipconfig:查看网络配置信息,如IP地址、子网掩码等。
    • tasklist:列出当前正在运行的进程。
    • taskkill:结束指定的进程,例如 taskkill /F /IM notepad.exe 强制结束记事本进程。
  • 网络操作
    • ping:测试网络连接,ping www.example.com 检测与example.com的连通性。
    • tracert:跟踪数据包到达目标主机的路径,tracert www.example.com
2、Linux命令
  • 文件和目录操作
    • ls:列出当前目录下的文件和子目录,ls -l 以长格式显示详细信息。
    • cd:切换目录,cd /home/user 切换到/home/user目录。
    • mkdir:创建新目录,mkdir newdir
    • rmdir:删除空目录,rmdir emptydir
    • cp:复制文件或目录,cp source.txt destination.txt 复制文件,cp -r olddir newdir 递归复制目录。
    • mv:移动文件或重命名,mv oldfile.txt newfile.txt 重命名文件,mv file.txt /newpath 移动文件。
    • rm:删除文件或目录,rm file.txt 删除文件,rm -r dir 递归删除目录及其内容。
  • 系统信息
    • uname:显示系统信息,uname -a 显示所有系统信息。
    • cat /proc/cpuinfo:查看CPU信息。
    • cat /proc/meminfo:查看内存信息。
    • ps:查看当前进程,ps -ef 显示所有进程的详细信息。
    • kill:结束进程,kill pid 结束指定PID的进程,kill -9 pid 强制结束。
  • 网络操作
    • ifconfigip a:查看网络接口信息。
    • ping:测试网络连接,ping www.example.com
    • traceroute:跟踪数据包路径,traceroute www.example.com
    • netstat:显示网络连接、路由表等信息,netstat -tuln 查看监听的端口。
3、. 专业术语
  • POC:全称“Proof of Concept”,中文“概念验证”,常指一段漏洞证明的代码。
  • EXP:全称“Exploit”,中文“利用”,指利用系统漏洞进行攻击的动作。
  • Payload:中文“有效载荷”,指成功 exploit 之后,真正在目标系统执行的代码或指令。
  • Shellcode:简单翻译“shell 代码”,是 Payload 的一种,由于其建立正向/反向 shell 而得名。正向代理与反向代理区别?
    • 正向 shell:攻击机A,受害者 B
      正向 shell: A 主动连接 B,直接使用 ssh 命令;受害者的命令行的输入输出转到控制端
    • 反弹 shell:
      控制端监听在某 TCP/UDP 端口,被控端发起请求到该端口,将受害者的命令行的输入输出转到控制端.
    • 结论:
      无论是正向 shell还是反弹 shell,都是 A 控制 B,只是请求端不一样,一个是主动控制,一个被动控制,与正向代理和反向代理一样,反弹 shell就会更加的稳定,用途更大。
  • poc 与 exp 区别
    • POC 是用来证明漏洞存在的,EXP 是用来利用漏洞的,两者通常不是一类,或者说,POC 通常是无害的,Exp 通常是有害的,有了 POC,才有 EXP。
4、 环境架构
  • 开发语言,程序源码,中间件容器,数据库类型,服务器操作系统,第三方软件等
  • 开发语言&开发脚本:
    • asp,php,asp.jsp,java,python,ruby,go,html,javascript 等
  • 程序源码:根据开发语言分类;应用类型分类;开源 CMS 分类;开发框架分类等
  • 中间件容器:IIS,Apache,Nginx,Tomcat,Weblogic,Jboss 等
  • 数据库类型:Access,Mysql,Mssql,Oracle,db2,Redis,MongoDB 等
  • 服务器操作系统:Windows 系列,Linux 系列等
  • 第三方软件:phpmyadmin,vs-ftpd,VNC,Openssh 等
5、 web漏洞种类
  • SQL 注入,文件安全,RCE 执行,XSS 网站,
  • CSRF/SSRF/CRLF,
  • 反序列化,逻辑越权,未授权访问,XXE/XML,弱口令安全等
6、 权限的划分
  • 后台权限,数据库权限,部分权限,web 权限,系统权限
  • 系统权限:admin, system, users(admin 管理员,users 普通用户)
  • 提权到 system
7、数据包
  • 通信过程
    1. 浏览器建立与 web 服务器之间的 connect
    2. 浏览器将请求数据打包(生成请求数据包)并发送到 web 服务器
    3. web 服务器将处理结果打包(生成响应数据包)并发送给浏览器
    4. web 服务器关闭连接
  • 过程:
    • 建立连接—> 发送请求数据包—> 返回响应数据包—> 关闭连接
8、请求方式
  1. GET 方法
    • 用于使用指定的 URI 从给定服务器中检索信息,即从指定资源中请求数据。使用 GET 方法的请求应该只是检索数据,并且不应对数据产生其他影响。在 GET 请求的 URL 中发送查询字符串(名称/值对),需要这样写:/test/demo_form.php?name1=value1&name2=value2
    • 说明:GET 请求是可以缓存的,我们可以从浏览器历史记录中查找到 GET 请求,还可以把它收藏到书签中;且 GET 请求有长度限制,仅用于请求数据
    • 注:因 GET 请求的不安全性,在处理敏感数据时,绝不可以使用 GET 请求。
  2. HEAD 方法
    • 与 GET 方法相同,但没有响应体,仅传输状态行和标题部分。这对于恢复相应头部编写的元数据非常有用,而无需传输整个内容。
  3. POST 方法
    • 用于将数据发送到服务器以创建或更新资源,它要求服务器确认请求中包含的内容作为由 URI 区分的 web 资源的另一个下属。POST 请求永远不会被缓存,且对数据长度没有限制;我们无法从浏览器历史记录中查找到 POST 请求。
  4. PUT 方法
    • 用于将数据发送到服务器以创建或更新资源,它可以用上传的内容替换目标资源中的所有当前内容。它会将包含的元素放在所提供的 URI 下,如果 URI 指示的是当前资源,则会被改变。如果 URI 未指示当前资源,则服务器可以使用该 URI 创建资源
  5. DELETE 方法
    • 用来删除指定的资源,它会删除 URI 给出的目标资源的所有当前内容。
  6. CONNECT 方法
    • 用来建立到给定 URI 标识的服务器的隧道;它通过简单的 TCP/IP 隧道更改请求连接,通常实使用解码的 HTTP 代理来进行 SSL 编码的通信(HTTPS)
  7. OPTIONS 方法
    • 用来描述了目标资源的通信选项,会返回服务器支持预定义 URI 的 HTTP 策略。
  8. TRACE 方法
    • 用于沿着目标资源的路径执行消息环回测试,它回应收到的请求,以便客户可以看到中间服务器进行了哪些(假设任何)进度或增量。

以上介绍了 HTTP 的 8 种请求方式,其中常用的是 GET 和 POST(GET 是从服务器上获取数据,POST 是向服务器传送数据)。

7. 状态码

常见状态码

  • 1**:提示信息 - 表示请求已收到,继续处理
  • 2**:发送成功(200)
  • 3**:重定向(302)
  • 4**:客户端错误
    • 400:发送请求有语法错误
    • 401:访问页面没有授权
    • 403:没有权限访问页面
    • 404:没有该页面
  • 5**:服务端错误
    • 500:服务器内部异常
    • 504:服务器请求超时,没有返回结果