http状态码,3个数字。第一位定义响应类别
1xx 信息提示表请求已被成功接收,继续 100~101
2xx 成功,服务器成功处理请求 200~206
3xx 重定向,告诉客户端新资源地址,浏览器重新对新资源发送请求 300~305
4xx 客户端错误状态码 401~415
5xx 有效请求但web服务器自身出错,用于描述服务器内部错误 500~505
常见:
200 请求成功
302 重定向
404 请求资源不存在
400 请求有语法错误,服务器不理解
401 请求未经授权
403 收到请求,但服务器拒绝提供服务
500 服务器内部错误
503 服务器当前不能处理请求,一段时间后可恢复
http消息又称http头(header),由4部分组成:请求头、响应头、普通头、实体头
请求头:
Range可以请求实体的部分内容,多线程下载一定会使用此请求头
X-forware-for 代表请求端的IP
Http用80端口,https用443.端口
https需要到CA申请认证证书
js属于前端验证,在浏览器未提交数据时进行验证,若在拦截http请求后修改数据即可绕过js验证
前端js验证是为了防止用户输入错误,服务器端验证是为了防止恶意攻击
第3章
GOOGLE常用语法说明
site:指定域名
intext:正文中存在关键字的网页
intitle:标题中存在关键字的网页
info :一些基本信息
inurl:URL存在关键字的网页
filetype:搜索指定位文件类型
如:
intitle管理漏洞 filetype:php
intext:Powered byDiscuz
计算机指纹时别不仅针对网站cms的指纹识别,还有针对服务器操作系统的和对web容器的指纹识别
第5章
SQL注入漏洞的形成原因:用于输入的数据被SQL解释器执行
注入漏洞分类:
数字型注入 出现在ASP,PHP等弱类型语言中
(弱类型语言自动推导变量类型)
字符型注入
与数字型区别:数字型不需要单引号闭合,而字符串类型一般要使用单引号闭合
关键点在于如何闭合SQL语句以及注释多条代码
注:数据库不同,字符串连接条件也不同,如SQLServer为“+”,ORACLE为”||“,mysql为空格
常见的注入叫法:
POST 注入:注入字段在POST数据中
Cookie注入:注入字段在Cookie数据中
延时注入:使用数据库延时特性注入
搜索注入:注入处为搜索的地点
base64注入:注入字符串需经base64加密
对数据库的利用方式:查询数据、读写文件、执行命令
存储进程(storedprocedure)是在大型数据库中为了完成特定功能的一组SQL”函数“,如执行系统命令、查看注册表、读取磁盘目录等
攻击者最常用xp-cmdshell
使用exec执行十六进制SQL语句并不存在单引号,可以用来突破防注入程序
msyql函数利用
1.load_file()函数读文件操作
在SQL注入中,将会经常使用函数组合来达到某种目的,如在浏览器返回数据时,有可能存在乱码问题,则可以使用hex()将字符串转换为16进制数据
2.intooutfile写文件操作
连接字符串使用concat()\caoncat_us()
mysql显错式注入,可以像SQLServer一样通过一些异常将字符串消息提取出来
mysql没有显错特性,并不能应用到mysql中,mysql可以使用某些函数来提取错误消息
如:updatexml,extractvalure,floor等函数库
6.宽字节注入
宽字节注入是由编码不统一造成的,一般出现在php+mysql
在php配置文件php.ini中存在magic_quotes_gpc选项,被称为魔术引号,当此选项被打开时,使用GET,POST,Cookie接收我的',”,\(单引号,双引号,反斜线)和NULL字符会被自动加上反斜线转义,使得字符无法构成字符注入型
7.mysql长字符截断
mysql设置有一个sql_mode,当为default时,mysql对插入超长的值只会warning,不会errors,这可能会导致一些截断问题
8.延时注入
盲注判断,盲注的意思即页面无差异的注入
延时属于盲注的一种,是一种基于时间差异的注入技术
mysql有一个函数Sleep(duration),意为在duration参数给定的秒数后运行语句
通过页面返回的时间可以断定是否存在SQL注入SQL漏洞