企业的网站建设公司,什么叫网站app,知己知彼网站,58同城深圳网站建设Sql注入
1、sql注入漏洞原理
开发者没有在网页传参点做好过滤#xff0c;导致恶意 sql 语句拼接到数据库进行执行
2、sql注入分类
联合注入 、布尔盲注 、时间盲注 、堆叠注入 、宽字节注入 、报错注入
3、堆叠注入原理
在 mysql 中#xff0c;分号 代表一个查询语句的…Sql注入
1、sql注入漏洞原理
开发者没有在网页传参点做好过滤导致恶意 sql 语句拼接到数据库进行执行
2、sql注入分类
联合注入 、布尔盲注 、时间盲注 、堆叠注入 、宽字节注入 、报错注入
3、堆叠注入原理
在 mysql 中分号 代表一个查询语句的结束所以我们可以用分号在一行里拼接多个查询语句
4、宽字节注入原理
a 数据库使用 gbk 编码
b 使用反斜杠进行转义
5、报错注入原理
a 报错注入函数,例如floor() 、group by 、exp() 、updatexml() 、extractvalue()
6、Dnslog注入原理
a 利用 load_file() 函数读取共享文件
b共享文件形式\hex(user()).dnslog.cn/ 或者 \host\
c 利用 mysql 的 load_file() 函数解析拼接过的 dnslog 域名进而带出数据
7、联合注入的步骤
a 找传参点
b 判断闭合符
c 判断列数
d 判断显示位
e 查询database()
f 查表
g 数据
8、盲注分类
a 布尔盲注页面回显 长度 burp 里的 Content-Length
b 时间盲注页面回显 时间 burp 包的 右下角 、Dnslog
9、盲注函数
if() 、sleep() 、substr() 、left() 、limit 、ascii() 、length()
10、判断闭合符方式
构造真和假id1 and 11 、id1’ and 12 、1 or 11 、) or 12 、and 234234 、and 1 、or 1 、and 1^1 、1 、||0
11、sql注入绕waf
a 代替空格/**/ 、/!/ 、 、%09 、%0a 、%00 、括号
b 关键字16进制 、char() 、字符串拼接
c 等价函数替换sleep()benchmark() 、if()case when then else end 、ascii()ord() 、substr()substring()
d 内联注释/*! */
12、sqlmap常用参数
a -r 用于post型注入指定 txt 文件的 post 数据包
b -u 指定url通常用于 get 型注入
c -p:指定注入点例如: python sqlmap.py-u http://127.0.0.1/index.php?id1mid2page3 -p “page”
d * 指定注入点例如python sqlmap.py-u http://127.0.0.1/index.php?id1*mid2page3* 注意* 号也可以用于伪静态的注入用法同前面一样直接在注入点后面加 *
e -m 用于sqlmap批量跑注入指定一个含有多个 url 的 txt 文件
f --os-shell :用户获取 shell
g --os-cmd :执行系统命令
h --tamper 指定绕过用的脚本文件
i --level 3 指定测试等级等级越高检查项越多共 1-5 个等级
j --risk 3 指定风险等级等级越告payload 越复杂共 1-3 个等级
k --random-agent 指定随机 agent 头
l --batch 默认选项
m --dbms 指定数据库类型
13、sql注入获取 webshell 的方式
a 写文件需要写权限
b 写日志文件不要学权限但是需要通过命令开启日志记录功能而且还需要把日志文件的路径指定到网站根路径下面
14、sql注入防御
a 过滤敏感字符例如information_schema 、into out_file 、into dump_file 、’ 、 、()
b 预编译
c 站库分离增加攻击者的时间成本、防止通过数据库拿到webshell
15、mysql提权方式
a mof提权
b udf提权
XSS跨站脚本攻击
1、XSS原理
开发人员没有做好过滤导致我们可以闭合标签进而插入并执行恶意JS代码
2、xss类型分类
a DOM型 由 DOM 文档完成解析
b 反射型 即插即用没有存储在数据库里面
c 存储型 被存储在数据库里面造成持久型的攻击
3、常用的JS函数
a document.cookie() 弹出当前网址的浏览器 cookie
b console.log(‘xss’) 在控制台输出日志
4、绕过方式
a 改变大小写
b 编码绕过 html 实体编码、 十进制十六进制八进制编码、 unicode 编码、
c 关闭标签利用大于号 关闭标签使得xss生效
d 双写饶过scr
e 可以使用 空格 换行 tab 键或者 /**/ , /!a/,的形式绕过 关键词的检测
f 用/代替空格
g 用 反引号 代替 括号 、双引号
h 用 throw 代替括号
i 用 html 实体编码 : 代替 冒号
j 用 jsfuck 编码绕过大部分字符过滤
5、扫描工具
xsstrick
6、XSS钓鱼平台
kali工具BEEF
免费平台自行搜索
7、xss防御
过滤敏感字符
a 例如aler() ,script ,onerror
b 增加 httponly 禁止前端执行JS代码
XXE:外部实体注入
1、漏洞原理
PHP开启 外部实体引用 传入的 xml 数据未经过过滤
2、漏洞特点
a 传参数据是以 xml 标签的形式
b 相应包里的 Content-typetext/xml
3、攻击手法
a 利用 file 协议读取文件
b 利用 http 协议进行端口探测例如http://127.0.0.1:22
c 利用 php 伪协议读取文件
4、盲XXE
核心加载执行远程xml文件造成数据外发的效果
5、防御
关闭外部实体功能libxml_disable_entity_loader(ture);
文件上传
1、漏洞原理
开发人员未在上传点对文件名和文件内容做严格的过滤
2、绕过黑名单
1 特殊后缀名绕过php3-php5 、 phtml 、通过修改 httpd.conf 文件按可以实现解析任意后缀名
2 通过上传 .htaccess 文件可以实现解析任意后缀名
3 上传 .user.ini 文件利用包含实现getshell
4 空格绕过利用的是 windows 和 linux 不允许文件名出现包括 空格 在内的特殊字符例如上传1.php[空格]
5 点绕过windows 不允许出现点结尾的文件名会自动去掉文件名后面的点 linux 允许出现点结尾的文件
6 流文件绕过windows 中:: D A T A 符号后面的内容会被当成字节流数据上传之后会自动去掉 : : DATA 符号后面的内容会被当成字节流数据上传之后会自动去掉 :: DATA符号后面的内容会被当成字节流数据上传之后会自动去掉::DATA 以及后面的内容
7 双写后缀名例如上传 1.pphphp 只适用于将 php 替换为空的情况
3、绕过白名单
1 00 截断
2 配合文件包含
4、对文件内容进行绕过
1 填充垃圾字符
2 免杀
5、绕过前端验证
1 在浏览器关闭前端 JS 功能
2 burp 抓包修改
文件包含
1、文件包含函数
a include() 、 require 、 include_once() 、 require_once()
2、文件包含支持的协议
a php 伪协议fiter 、 input 、 data 、 zip 、phar
b file 协议
c http 和 https
3、利用条件
a 本地文件包含不需要开启 allow_url_* 参数
b 部分伪协议需要开启一个或者两个 allow_url_* 参数
4、防御
a 过滤关键字例如php:// 、 file:// 、 http://
b 关闭 allow_url_* 参数
命令执行
1、拼接 、 、 | 、 ||
2、原理在操作系统中 、 、 | 、 || 都可以作为命令连接符使用用户通过浏览器提交执行命令由于服务器端没有针对执行函数做过滤导致在没有指定绝对路径的情况下就执行命令
CSRF:跨站请求伪造
1、原理在 cookie 有效期范围内诱使受害者点击某个页面进而执行非受害者本意的操作。
2、同源策略内容
主机、端口、协议
2、防御
a 验证 referer
b 加 token 验证 SSRF:服务器请求伪造
1、原理
大都是由于服务端提供了从其他服务器获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容加载指定地址的图片下载等等。
2、支持的协议
a http://
b https://
c dict://
d ftp://
e file1
f php 伪协议
g gopher://
3、危害
a 内外网的端口和服务扫描
b 主机本地敏感数据的读取
c 内外网主机应用程序漏洞的利用
d 内外网Web站点漏洞的利用
4、防御
a 过滤 file:// 、 gocher:// 等过滤 端口
b 把网站需要访问的内网资源路径写死不从外部接收
信息泄露
1、原理
信息泄露可能是不慎泄露给浏览该网站信息用户的,也有可能是攻击者通过恶意的交互从网站获得数据。例如.svn、.git、.ds_store
2、利用手法
a 通过 robots.txt 泄露网站隐藏目录/文件.或者站点结构
b 网站站点的 备份文件 未删除导致的泄露,可能会泄露网站源代码
c 没有正确处理网站的一些 错误消息 ,在错误消息中泄露数据库表,字段等
d 一些高度敏感的用户信息,银行账号等泄露
e 在源代码中泄露数据库 账号密码 ,等等(GitHub)
f 网站某些程序的细微差别提示是否存在某些资源,用户名
中间件漏洞
Apache
a 解析漏洞多后缀名解析漏洞从后往前解析一直解析到可识别的后缀、罕见
b 后缀名解析漏洞、.htaccess解析漏洞
命令执行漏洞CVE-2021-42013
IIS
a 文件名解析漏洞从前往后解析遇到分号就截断忽略分号后面的内容
例如1.asp;.jpg
b 罕见后缀名例如.asa、.cer、.cdx
c IIS 5.X/6.0的文件夹解析漏洞例如将文件夹以1.asp命名该文件夹中的所有文件都会被当做asp文件执行1.asp/1.jpg、1.asa/1.jpg、1.cer/1.jpg、1.cdx/1.jpg
d IIS 7.0/IIS 7.5的CGI解析漏洞例如上传1.jpg然后访问1.jpg/.php
e IIS PUT文件上传漏洞
f HTTP.sys远程代码执行漏洞MS15-034
Nginx
a CGI解析漏洞例如上传1.jpg然后访问1.jpg/.php
其他
1、IIS目录解析漏洞、分号截断、CGI解析漏洞、PUT文件上传漏洞、MS15-034
2、Apache多后缀名解析漏洞、目录遍历、命令执行漏洞CVE-2021-42013
3、NginxCGI解析漏洞
4、Tomcat后台部署war包、PUT文件上传漏洞、反序列化漏洞、样例目录session操控漏洞
5、Weblogic后台部署war包、一大堆反序列化漏洞、未授权RCE漏洞
6、Jboss后台部署war包、一堆反序列化 框架漏洞
thinkphp5.x RCE
基本都是对模型对方法的路由处理有误导致RCE反序列化漏洞的话需要有反序列化点
thinkphp5.0.x漏洞原因是对url处理有关导致远程命令执行
Struts2
1、原理struts2是一个框架他在处理action的时候调用底层的getter/setter来处理http的参数将每一个http的参数声明为一个ONGL。导致命令执行
框架特点文件后缀名”.action ” “.do”
2、例子
S2-062漏洞形成的原因是struts在处理标签的name属性时将用户输入当作表达式进行二次解释导致OGNL表达式注入。
s2 046 通过Content-Type这个header头 filename 后面需要00截断注入OGNL语言进而执行命令,通过不恰当的 filename 字段或者大小超过 2G 的 Content-Length 字段来触发异常进而导致任意代码执行。
Shrio 反序列化
1、原理Apache Shiro是一个Java安全框架执行身份验证、授权、密码和会话管理Shiro提供了RememberMe的功能当用户关闭浏览器下次再打开浏览器访问时还是能记住我是谁无需登录即可访问。
其实很多网站都有这功能Shiro对RememberMe的Cookie做了加密处理在CookieRememberMeManaer类中将Cookie中RememberMe字段内容分别进行序列化、AES加密、Base64编码等操作但是默认的加密AES Key是硬编码进去的都知道这个Key是什么所以在逆向操作反序列化、Base64解密的时候攻击者就可以伪造恶意数据通过反序列化远程执行命令。
Fastjson 反序列化
通过Fastjson反序列化漏洞攻击者可以传入一个恶意构造的JSON内容程序对其进行反序列化后得到恶意类并执行了恶意类中的恶意函数进而导致代码执行。
redis未授权
1、redis在6379端口
2、写webshell
3、写公钥实现免密登录
4、写计划任务实现反弹shell
5、主从复制getshell