sql注入原理针对SQL 的攻击行为可以描述为通过用户可控参数中注入SQL 语法,破坏原有SQL 结构,达到编写程序时意料之外结果的攻击行为,其成因可以归结为以下两个原因叠加造成的:
1、程序编写者在处理程序和数据库交互时,使用字符串拼接的方式构造SQL 语句。
2、未对用户可控参数进行足够的过滤,便便将参数内容拼接到SQL 语句中。
分类数字型 参数两边没有单双引号。
字符型 参数两边有单双引号。
如何判断
当id=2-1回显出id=1的值,就为数字型,字符串不会进行逻辑运算,只有整形数字才会运算
可能存在的位置根据SQL 注入漏洞的原理,在用户的“可控参数”中注入SQL 语法,也就是说Web 应用在获取用户数据的地方,只要带入数据库查询,都有可能存在SQL 注入的可能,这些地方通常包括:
GET 数据
POST 数据
cookie 数据
sql注入利用联合查询
联合查询是最常用的SQL 注入手法,有两个要求:一是字段数相同,二是数据类型相同。
联合查询可以跨库,跨表查询。
注入点的判断
?id=33 ?id=34 ?id ...
MySQL基础语法所有mysql语句的结尾,一定加上英文分号
查询1234567891011121314151617181920212223242526272829303132333435cmd>mysql -uroot -prootmysql> show databases; 查看有哪些数据库mysql> use mysql; 进入一个名字为mysql的数据库mysql> show tables; 查看当前数据库中有哪些表重要user表 中有哪些内容mysql> select * from user; 查看表mysql> desc mysql.user; 查看表结构primary key 主键mysql> select host,user,password from mysql.user where user='root';按条件查询 只看 3个字段 而且其中 user字段值为root的内容mysql> select host,user,password from mysql.user limit 10 ...
CSRF(跨站请求伪造)跨站请求伪造(Cross-site request forgery,CSRF),它强制终端用户在当前对其进行身份
验证后的Web应用程序上执行非本意的操作。CSRF攻击的着重点在伪造更改状态的请求,而不是盗取数据,因为攻击者无法查看对伪造请求的响应。
借助社工的一些帮助(例例如通过电子邮件或聊天发送链接),攻击者可以诱骗用户执行攻击者选择的操作。如果受害者是普通用户,则成功的CSRF攻击可以强制用户执行状态更改的请求,例如转移资金。如果受害者是管理帐户,CSRF可能会危及整个Web应用程序。
【】
SSRF(服务器端请求伪造)互联网上的很多Web 应用提供了从其他服务器(也可以是本地)获取数据的功能。使用用户指定的URL,Web 应用可以获取图片、文件资源(下载或读取)。
用户可以从本地或者URL 的方式获取图片资源,交给百度识图处理。如果提交的是URL 地址,该应用就会通过URL 寻找图片资源。如果Web 应用开放了类似于百度识图这样的功能,并且对用户提供的URL和远端服务器返回的信息没有进行合适的验证或者过滤,就可能存在“请求伪造”的缺陷。请求伪造,顾名思义 ...
web渗透
未读常规抓包水一篇博客
截图背景为真实机第一遍测试裸奔payload被拦截页面,更换fuzz出来的payload成功绕过,如果xss的字典过于庞大,又嫌麻烦不愿意用小字典一点点尝试,直接一波冲的时候会被安全狗以DDOS行为拦截ban掉ip几分钟,那可以调大承载量,实战的时候更换小一点的字典配合延迟发包就可以了
key佬字典(强烈推荐):https://github.com/gh0stkey/Web-Fuzzing-Box
绕过规则关键字被过滤的情况12<svg><svg onload="alert(1)">
大小写绕过12<ImG sRc=1 onerRor=alert(1);><SvG OnlOad="alert(1)">
双写关键字(有限制)1<imimgg srsrcc=x onerror=alert("xss");>
Javascript伪协议的使用1<table background="javascript:alert(1)"></table>
level1
level21"><script>alert(/xss/)</script>
level31' onclick='alert(1)
level5javascript伪协议绕过1"><a href='javascript:alert(1)'>
level ...
web渗透
未读文件包含相关函数include() 多次包含
include_once() ⼀次包含
require() 多次包含
require_once() ⼀次包含
漏洞分类远程文件包含
本地文件包含如果文件有代码,会将包含文件以php文件的类型解析
任意文件下载漏洞成因存在读取⽂件的函数
读取⽂件的路径客户端可控
没有对⽂件类型进⾏校验或者校验不严
没有对⽂件路径进⾏校验或者校验不严
输出了⽂件的内容
12345678<?php $file_path = $_GET['file'];file_exists($file_path) or die('file not exits');$file_name = basename($file_path);$file_size = filesize($file_path);readfile($file_path);?>
任意文件读取与文件包含的区别以php网站为例
文件包含会把文件当作php文件解析
文件读取,以记事本打开,TXT
web渗透
未读常规抓包
图片木马制作copy 1.jpg/b+1.php/a yjh.jpg
如何判断黑白名单上传一个后缀为乱码的文件,如果成功证明是黑名单,失败就是白名单
前端限制与绕过bp抓包修改后缀
服务器端检测–MIME 类型第二关
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。image/jpeg
.htaccess(区域解析配置文件)第四关
让服务器在解析文件的时候,.htaccess文件所在目录下,全部以php文件解析
SetHandler application/x-httpd-php
后缀大小写第五关
空格绕过第六关
在文件的末尾加上空格,windows系统的特性决定了最后保存文件的名称不会留下空格
文件名双写绕过第10关
Web 容器解析漏洞Web容器解析漏洞,就是Web 容器在解析脚本出现的”bug”。
a、 IIS 6.0/xx.asp/xx.jpg
“xx.as ...
bp介绍
暴力破解用所有可能的账户名密码组成字典,进行登录尝试
pikachu
sql注入前端提供了输入参数的功能,后端语句对数据库进行了操作,用户输入的参数打断了原有sql语句的功能
xssjs代码可控
js代码可以做的事情,xss都可以做
文件上传上传一个一句话木马,利用软件链接木马,可以实现对远程服务器cmd的使用,文件可视化管理
上传脚本文件,脚本提供接收前端参数的功能,并且脚本提供执行命令的函数
文件包含本地文件包含如果文件有代码,会将包含文件以php文件的类型解析
远程文件包含
csrf跨站请求伪造
ssrf服务器请求伪造
伪造服务器的请求
百度翻译
命令执行让远程的web服务器在自己的命令行执行命令
未授权登录后才能访问的内容,直接访问url就行能访问到










