一些题型
看源码
查看修改过添加HTTP请求头响应头
抓包
阅读javascript代码,直接控制台获取正确密码
文件泄露
备份文件:.index.php.swp、.index.php.swo、.index.php.bak、.index.php~
源码压缩包:www.zip、root.zip、web.zip
git / svn泄露:
git泄露:www.xxx.com/.git/config,之后使用工具GitHack可以获取源码python GitHack.py URL/.git
svn泄露:www.xxx.com/.svn/entries,利用工具dvcs-ripper获取源码其它文件泄露:
.idea目录泄露:(使用了IntelliJ IDEA的工程,可泄露目录结构),详情可看这里
.DS_Store:www.xxx.com/.ds_store,工具ds_store_exp
.pyc文件:(python编译后的字节码文件)
JSFuck
robots.txt文件获取信息
302跳转的中转网页有信息
请求修改、重放
sql注入:拿到数据库的flag
命令执行、文件上传:拿到服务器上的flag
XXE
hash函数
md5碰撞
后台登陆
代码逆向
php代码审计
php伪协议
XSS
暂时就知道这么多
哈希值为0e
开头的字符串
1 | QNKCDZO |
请求报文和响应报文具体分析
请求报文
HTTP 请求报文由3部分组成(请求行+请求头+请求体)
1是请求方法,GET和POST是最常见的HTTP方法,初次以外还包括 DELETE、HEAD、OPTIONS、PUT、TRACE,不过现在大部分的浏览器只支持GET和POST
2是请求对应的URL地址,他和报文头的Host属性,组合起来是一个完整的请求URL
3是协议民称和版本号
4是报文头,有若干个属性,形式为key:val,服务端据此获取客户端信息
请求报文属性:
Accpet
- 告诉服务端,客户端接收什么类型的响应
Referer
- 表示这是请求是从哪个URL进来的,比如想在网上购物,但是不知道选择哪家电商平台,你就去问度娘,说哪家电商的东西便宜啊,然后一堆东西弹出在你面前,第一给就是某宝,当你从这里进入某宝的时候,这个请求报文的Referer就是www.baidu.com
Cache-Control
- 对缓存进行控制,如一个请求希望响应的内容在客户端缓存一年,或不被缓可以通过这个报文头设置
Accept-Encoding
- 这个属性是用来告诉服务器能接受什么编码格式,包括字符编码,压缩形式(一般都是压缩形式)
- 例如:Accept-Encoding:gzip, deflate(这两种都是压缩格式)
Host
- 指定要请求的资源所在的主机和端口
User-Agent
- 告诉服务器,客户端使用的操作系统、浏览器版本和名称
5是报文体,它将一个页面表单中的组件值通过param1=val1&parma=2的键值对形式编码成一个格式化串,它承载多个请求参数的数据,不但报文头可以传递请求参数,URL也可以通过/chapter15/user.html? param1=value1¶m2=value2”的方式传递数值
响应报文
响应报文由三个部分组成(响应行,响应头,响应体)
1报文协议及版本;
2状态码及状态描述;
常见状态码:
- 200 OK 表示成功
- 303 重定向,把你重定向到其他页面
- 304 资源并未修改,可以直接使用本地的缓存
- 404 找不到页面(页面被删除或其他)
- 500 服务端错误
3响应报文头,也是由多个属性组成
响应报文属性:
Cache-Control
- 响应输出到客户端后,服务端通过该属性告诉客户端该怎么控制响应内容的缓存
ETag
- 表示你请求资源的版本,如果该资源发生啦变化,那么这个属性也会跟着变
Location
- 在重定向中或者创建新资源时使用
Set-Cookie
- 服务端可以设置客户端的cookie
4响应报文体,即我们要的数据。
更多请求头响应头属性
更多详情参照