网络安全技术面试问题

本文是为了方使各位小伙伴们,在面试中遇到的一问题。如果觉得对你有帮助的话记得点个赞再走哦~(文末有惊喜哦)

CTF

说一个印象深刻的CTF的题目

  • Padding Oracle->CBC->密码学(RSA/AES/DSA/SM)

  • CRC32

  • 反序列化漏洞

sql二次注入

第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据。 在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。

交友网站,填写年龄处是一个注入点,页面会显示出与你相同年龄的用户有几个。使用and 1=1确定注入点,用order by探测列数,union select探测输出点是第几列,

  1. 暴库 group_concat(schema_name) from information_schema.schemata

  2. 暴表 group_concat(table_name) from information_schema.schemata where table_schema='hhh'

  3. 获取数据 concat(flag) from flag

修复:在从数据库或文件中取数据的时候,也要进行转义或者过滤。

Python

爬虫模块、框架、反爬虫机制(IP->代理池、验证码破解、UA)

并发(多线程、线程池、协程、三个程之间的区别)

进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。以前进程既是资源分配也是调度的最小单位,后来为了更合理的使用cpu(实际上是cpu性能越来越好),才将资源分配和调度分开,就有了线程。线程是建立在进程的基础上的一次程序运行单位。

常用的标准库

  • functools -

  • itertools 迭代器

    • count/cycle/repeat

    • chain

    • groupby 把迭代器中相邻的重复元素挑出来放在一起

  • concurrent.futures

    • ThreadPoolExecutor

  • hashlib

    • md5

    • sha1

    • sha256

    • sha512

  • logging

  • sys.argv argparse读取命令行参数

  • pickle 序列化工具

  • re 正则

  • collections 多种数据类型

    • namedtuple

    • OrderedDict

    • Counter

  • os 系统相关的函数

DJANGO和FLASK区别和使用

ORM

python安全工具编写/源码阅读

证明能力

  • python安全工具开发

  • python项目,记一下技术细节

密码学

RSA

DES

AES

国内SM系列

风险评估

流程

三要素

  • 资产:资产价值

  • 威胁:威胁主体、影响对象、出现频率、动机等

  • 脆弱性:资产弱点的严重程度‘

代码审计

Fority SCA审计JAVA代码

fortify用到什么模块? 过滤器 自定义规则 生成报告

Seay审计PHP代码

源码阅读

应急响应具体流程

模型

PDCERF模型

  • Prepare(准备):准备用来检测的工具和人

  • Detection(检测):紧急事件监测:包括***、系统、web服务器、IDS/WAF/SIEM中的日志,不正常或者是执行了越权操作的用户,甚至还有管理员的报告

  • Containment(抑制):首先先控制受害范围,不要让攻击的影响继续蔓延到其他的IT资产和业务环境,切记不要直接一股脑的投入全部精力到封堵后门。紧接着要做的是去寻找根源原因,彻底解决,封堵攻击源,把业务恢复到更张水平

  • Eradication(根除)

  • Recover(恢复)

  • Follow-Up(跟踪):根据各种监控去确定没有其他的攻击行为和攻击向量,紧接着就是开会反省此次事件,写报告,持续改进工作流程和工作缓解

实例

DDOS

DDOS是什么

分布式拒绝服务攻击(DDoS)是目前黑客经常采用而难以防范的攻击手段。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。

DDOS攻击手段是在传统的DOS攻击基础之上产生的一类攻击方式。单一的DOS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DOS攻击的困难程度加大了——目标对恶意攻击包的“消化能力”加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果这时侯分布式的拒绝服务攻击手段(DDOS)就应运而生了。

如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDOS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。通常,被攻击的服务器有以下症状:1、被攻击主机上有大量等待的TCP连接;2、网络中充斥着大量的无用的数据包,源地址为假;3、制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;4、利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求;5、严重时会造成系统死机

实例

我司网站www.catroot.cn的IP 223.223.223.223 被人DDOS攻击,流量达9G,并且机房流量清洗无效,所以把223.223.223.223封停,导致网站不能访问,请作出紧急预案。

  • 网络设备设施

    • 拼带宽,加大带宽,但是成本太高

    • 使用硬件***

    • 选用高性能设备

  • 抗D思想和方案

    • 负载均衡

    • 花钱买流量清洗服务

    • CDN:web层,比如cc攻击

    • 分布式集群防御

    • 高防:防大部分攻击,udp、大型的cc攻击

  • 预防为主

    • 系统漏洞

    • 系统资源优化:

    • 过滤不必要的服务和端口

    • 限制特定流量:检查访问来源做适当限制

主机被入侵

  1. 优先提取易消失的数据

    • 内存信息 free -m `htop

    • 系统进程 ps top netstat ss

    • 路由信息 tracert

  2. ifconfig查看网卡流量,检查网卡的发送、接收数据情况

  3. NetHogs实时监控带宽占用状况

  4. 查看Linux系统日志 /var/log

  5. ClamAV杀毒软件

渗透测试流程相关

渗透测试流程

  1. 项目访谈

  2. 信息收集:whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、***、维护者信息

  3. 漏洞扫描:Nessus, AWVS

  4. 手动挖掘:逻辑漏洞

  5. 验证漏洞

  6. 修复建议

  7. (如果有)基线检查/复验漏洞

  8. 输出报告

    • 概述

    • 测试基本信息

      • 测试范围

      • 测试时间

      • 测试任务

      • 测试过程

    • 信息安全风险综合分析

      • 整体风险分析

      • 风险影响分析

      • 系统安全分析

      • 安全漏洞列表

    • 解决方案建议

    • 复测报告

渗透测试项目

用七八句话概括一下发现、验证漏洞细节、扮演角色、具体工作。 如果技术人员有兴趣会继续问,接着再引导到别处,让自己多说说细节。

渗透测试具体实施

17年OWASP TOP10

  • 注入:sql,nosql,ldap,os

  • 失效的身份认证:

  • 敏感信息泄漏

  • XXE XML外部实体

  • 失效的访问控制:管理页面仅能管理员权限访问;越权漏洞

  • 安全配置错误:页面错误信息,默认密码,使用已知漏洞的应用

  • XSS

  • 不安全的反序列化:一个PHP论坛使用PHP对象序列化来保存一个cookie,用户修改cookie即可伪造管理员登陆

  • 使用含有已知漏洞的组件:比如structs2框架

  • 不足的日志记录和监控:代码被删除,无法溯源;记录登陆失败次数;监控问题没被管理员响应

常见的Web安全漏洞

  • SQL注入

  • XSS

  • 文件遍历、文件上传、文件下载

  • 垂直越权、水平越权

  • 逻辑漏洞

挖过什么逻辑漏洞

订单任意金额修改

相同价格增加订单数量,相同订单数量减少产品价格,订单价格设定为负数。

预防思路:

  • 订单需要多重效验

  • 订单数值较大的时候需要人工审核

验证码回传

漏洞一般发生在账号密码找回、账号注册、支付订单等。验证码发送途径一般为手机短信、邮箱邮件

预防思路:

  • response数据内不包含验证码,验证方式主要采取后端验证,但是缺点是服务器的运算压力也会随之增加

  • 如果要进行前端验证的话也可以,但是需要进行加密

未进行登陆凭证验证

有些业务的接口,因为缺少了对用户的登陆凭证的效验或者是验证存在缺陷,导致黑客可以未经授权访问这些敏感信息甚至是越权操作。比如后台页面、订单ID枚举、敏感信息可下载、没验证ID或cookie验证导致越权。

预防思路:

  • 对敏感数据存在的接口和页面做cookie,ssid,token或者其它验证

接口无限制枚举

  • 某电商登陆接口无验证导致撞库

  • 某招聘网验证码无限制枚举

  • 某快递公司优惠券枚举

  • 某电商会员卡卡号枚举

预防思路:

  • 在输入接口设置验证,如token,验证码等。如果设定验证码,最好不要单纯的采取一个前端验证,最好选择后端验证。如果设定token,请确保每个token只能采用一次,并且对token设定时间参数。

  • 注册界面的接口不要返回太多敏感信息,以防遭到黑客制作枚举字典。

  • 验证码不要用短数字,尽量6位以上,最好是以字母加数字进行组合,并且验证码需要设定时间期限。

  • 优惠券,VIP卡号请尽量不要存在规律性和简短性,并且优惠券最好是以数字加字母进行组合。

cookie设置存在缺陷

  • Cookie的效验值过于简单。有些web对于cookie的生成过于单一或者简单,导致黑客可以对cookie的效验值进行一个枚举.

  • cookie存在被盗风险,即用户重置密码后使用老cookie依然可以通过验证

  • 用户的cookie数据加密应严格使用标准加密算法,并注意密钥管理。不能采取简单的base64等算法

  • 越权:平行越权:权限类型不变,权限ID改变;垂直越权:权限ID不变,权限类型改变;交叉越权:即改变ID,也改变权限

预防思路

  1. cookie中设定多个验证,比如自如APP的cookie中,需要sign和ssid两个参数配对,才能返回数据。

  2. 用户的cookie数据加密应严格使用标准加密算法,并注意密钥管理。

  3. 用户的cookie的生成过程中最好带入用户的密码,一旦密码改变,cookie的值也会改变。

  4. cookie中设定session参数,以防cookie可以长时间生效。

  5. 根据业务不同还有很多方法

找回密码功能缺陷

  1. 单纯读取内存值作为用户凭证

  2. 电商系统加车、下单漏洞

你常用的渗透工具有哪些,最常用的是哪个?

扫描:Nessus,AWVS,Nikto

SQLmap

常用参数

 -u 单个URL -m xx.txt 多个URL  -d "mysql://user:[email protected]:3306/dvwa"  作为服务器客户端,直接连接数据库  --data post/get都适用  -p 指定扫描的参数  -r 读取文件  -f 指纹信息  --tamper 混淆脚本,用于应用层过滤  --cookie --user-agent --host等等http头的修改  --threads 并发线程 默认为1  --dbms MySQL<5.0> 指定数据库或版本    –level=LEVEL 执行测试的等级(1-5,默认为 1)  –risk=RISK 执行测试的风险(0-3,默认为 1) Risk升高可造成数据被篡改等风险  –current-db / 获取当前数据库名称  –dbs 枚举数据库管理系统数据库  –tables 枚举 DBMS 数据库中的表  –columns 枚举 DBMS 数据库表列  -D DB 要进行枚举的数据库名  -T TBL 要进行枚举的数据库表  -C COL 要进行枚举的数据库列  -U USER 用来进行枚举的数据库用户  

常用的tamper

本地:sqlmap-tamper分类.xlsx

 base64encode.py #转为b64编码  charencode.py url编码  chardoubleencode.py 双URL编码  unmagicquotes.py 宽字节  randomcomments.py 用/**/分割SQL关键字  space2plus.py space2comment.py space2xxxx.py 替换空格为xx

Nmap

 nmap hostname/ip或者多个ip或者子网192.168.123.*  -iL ip.txt 扫描ip.txt的所有ip  -A 包含了-sV,-O,探测操作系统信息和路由跟踪。一般不用,是激烈扫描  -O 探测操作系统信息  -sV 查找主机服务版本号  -sA 探测该主机是否使用了包过滤器或***  -sS 半开扫描,一般不会记入日志,不过需要root权限。  -sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批的链接请求以及错误信息。  -sP ping扫描,加上这个参数会使用ping扫描,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping,却实际存在。  -sN TCP空扫描  -F 快速扫描  -Pn 扫描之前不使用ping,适用于***禁止ping,比较有用。  -p 指定端口/端口范围  -oN 将报告写入文件  -v 详细信息  -T<0-5> 设定速度

Nmap还可以用到爆破等一些脚本

 --script all 使用所有脚本  --script=sql.injection.nse sql注入  --script="smb*"  扫smb系列

Metasploit

使用内置模块。HR:常用的模块有哪些? tcp反向链接 msfvenom

Hydra

密码爆破工具,FTP,MSSQL,MYSQL,POP3,SSH,rdp,

   hydra IP -l loginname -P pass.txt PROTROCL  hydra 127.0.0.1 -l root -P pass.txt ssh

kali信息收集工具

  • dig

  • whois

  • host:查询dns服务器

  • nslookup

  • 域名枚举:fierse -dns

  • maltego

  • onesixtyone

 全套网络安全面试题

 

 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(需要的可以在评论区留言哦~)

同时每个成长路线对应的板块都有配套的视频提供:

猜你喜欢

转载自blog.csdn.net/hdwlwang/article/details/130367972
今日推荐