月度归档:2019年01月

2019寒假班0x1

0. WEB应用基础架构
– URL

○ URL编码
%3d =
%25 %

+ 也等于 空格
– HTTP协议

○ 请求报文
§ HOST 请求的主机地址
User-Agent 产生请求的浏览器类型
○ 请求内容
§ contact-type 内容的格式
○ 响应报文
§ 状态行
□ 状态码
304 使用本地缓存
○ 响应头部
§ Apache不经配置,会暴露服务器版本号 <-信息搜集
– 会话技术
○ Cookie
保存在客户端浏览器
○ Session
保存在服务器端

cookie 和session 的区别:

§ cookie数据存放在客户的浏览器,用来记录用户的一些信息上;session是保存在服务端上的数据,用来跟踪用户的专业,这个数据可以保存在集群、数据库、文件中。

§ cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。

§ session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。

§ 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

§ 建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
– FireFox插件
cookie manager
web deleloper
hackbar
noscript

– XSS
https://xz.aliyun.com/t/1672
○ 反射型
○ 存储型
○ DOM型
§ 对服务不可见
§ 基于文档对象模型Document Object Model(DOM)的一种漏洞
§ 通过URL传入参数去控制触发
– 如何寻找XSS?
○ 寻找web应用上的输入和输出口,如有原义输出,则必有XSS漏洞
– XSS 输出点
○ html
○ 事件中
○ 属性中
– BeEF

SQL
http://pupiles.com/sql.html
0. 判断数据库类型
– 端口
Oracle 1521
SQL Server 1433
MySQL 3306
pointbase 9092
DB2 5000
– 报错

1. 寻找注入点
– 找可控参数
get post

– 判断是否进行了SQL执行
○ 简单的逻辑运算
§ EX. ?id=1 ?id=2-1 ?id=3-2
2. 确定注入点
– 区分数据类型
– 时间延迟

以下对MySQL
3. 联合注入
union

4. 报错注入
– UPDATAXML()
– https://blog.csdn.net/whatday/article/details/63683187

5. 盲注
https://blog.csdn.net/sdb5858874/article/details/80656144
– 布尔盲注
利用回显的不同推测SQL语句执行的结果是True还是False
ex. payload: select * from users where user=’xx’ and pass>’123’#’

– 布尔盲注过程
可使用二分法
○ 判断数据库个数
(select count(schema_name) from information_schema.schemata)>n
n 为数据库个数,当数据库个数大于n时,页面显示正常
○ 判断数据库名有多少字符
(select length(schema_name) from information_schema.s chemata limit 0,1)> n
该语句判断数据库内第一个数据库名有多少字符,大于n则页面显示正常
字符位空白,使用substr()会返回false,编写脚本时可以 以此简化
○ 逐个判断字符
(select ascii(substr((select schema_name from informa tion_schema.schemata limit 0,1),1,1)))>105
ascii()将返回字符串的ascii值
第一个1,表示截取字符串的起始位置
第二个1,表示截取字符串长度
该语句作用:判断第一个库第一个字符是什么

– 时间盲注
页面不存在不同回显,但SQL语句被执行
其余同上

DNS-Log
http://ceye.io/
1. 在无回数据的情况下,我们可以通过DNS解析来传递数据,在MYSQL中,可以使用 LOAD_FILE() 来让服务器发送DNS解析

6. SQL注入防御
– 预编译 和 绑定变量
– 过滤和安全防御

7. SQLmap


文件包含
8. php文件包含函数

9. 伪协议
– 压缩包
zip协议,绝对路径,注意对锚点的URL编码
– zip://
– phar://
– data://
base()编码

10. 包含日志文件

11. 包含SESSION

12. 包含 /pros/self/environ
user-agent

13. 其它包含姿势
– 包含临时文件
– 包含SMTP(日志)
– 包含XSS
– 包含上传文件

14. 文件上传绕过
– 后缀绕过

15. 文件包含防御
– allow_url_include 和 allow_url_open 最小权限化