回忆一次校招笔试的题目
判断题
- Windows远程登录服务对应的端口号是3306。(错 )
3306不是mysql默认端口吗,远程登录是3389啊
- 网站对外只开放80端口,这样可以防止攻击者以此服务器做跳板进行内网渗透。( 错 )
- ps -aux,ps -ef命令可以查看进程及进程PID等详细信息。( 对 )
- ping -l 65900 -t 192.168.222.112可以造成拒绝服务攻击。( 对 )
“死亡之ping”仍然是经典的拒绝服务攻击
- more命令可以查看Windows系统文本文件的内容。( 对 )
这道题错了的话,该复习复习windows指令了。
- 封堵445端口、禁用SMB服务可以抑制永恒之蓝加密勒索病毒的传播。( 对 )
- 通过sqlmap可以进行SQL注入攻击。( 对 )
- 某员工的移动硬盘存储了大量的公司核心商业资料,现在需要更新硬盘,为了保证其不被其它人窃取,所以就格式化硬盘,并且进行了低级格式化,这样的做法可以保证数据不被泄露。( 错 )
- %TGB4rfv7ujm不属于弱口令。( 错 )
- AWVS是一款漏洞扫描工具。( 对 )
单选题
- 在保证密码安全中,我们应采取的措施中不正确的是( C )
A、不用生日做密码
B、不要使用少于8位的密码
C、密码保存到我的邮箱中
D、使用U-key双因子认证
- 当你感觉到你的Windows服务器运行速度明显减慢,当你打开任务管理器后发现CPU的使用率达到了百分之百,你最有可能认为你受到了哪一种攻击( B)
A、特洛伊木马
B、拒绝服务(DOS)
C、欺骗
D、中间人攻击
- 下列哪一种攻击手法属于SQL注入攻击( B)
A、http://www.xxx.com/index.jsp?id=AAAAAAAAAAAAAAAAAAAAAAAA
B、http://www.xxx.com/index.jsp?id=1or 1=1 and exist(select * from admin)>0 and '1'='1
C、http://www.xxx.com/index.jsp?id=1对id参数的值进行遍历
D、http://www.xxx.com/index.jsp?id=../../../../../../../etc/passwd
- 下列哪一种攻击手法属于XSS攻击( B)
A、http://www.xxx.com/index.jsp?id=1234567890
B、http://www.xxx.com/index.jsp?id=1'><>alert(/123456/)</>
C、http://www.xxx.com/index.jsp?id=@@version
D、http://www.xxx.com/index.jsp?id=../../1.pdf
- 下列哪一种攻击手法属于CSRF(跨站请求伪造攻击)( C )
A、http://www.xxx.com/index.jsp?user=adminand 1=1
B、http://www.xxx.com/index.jsp?user=admin'><imgsrc=1 =alert(1)>
C、http://www.xxx.com/index.jsp?username=zhangsan&money=10000
D、http://www.xxx.com/index.jsp?iusername='or '1'='1
- 你从米特尼克的故事中,学到了哪一门技术:( C )
A、SQL注入攻击技术
B、XSS跨站脚本攻击技术
C、社会工程学
D、弱口令猜解技术
- 李明在使用Nmap对目标网络进行扫描时发现,某一个主机开放了25 SMTP和110 POP3端口,此主机最有可能是什么?(B )
A、文件服务器
B、邮件服务器
C、WEB服务器
D、DNS服务器
- 李明在使用Nmap对目标网络进行服务探测时发现,某一个主机开放了22端口的SSH服务和1433端口的SQL Server服务,此主机最有可能是什么操作系统?( A)
A、Windows
B、Linux
C、防火墙设备
D、厂商自己做的非主流系统
- 下列哪一中注入手法属于SQL Server数据库?( C )
A、load_file()读文件
B、intooutfile写文件
C、xp_cmdshell执行系统命令
D、select* from dual
- 你会优先选择哪一款工具对SQL注入进行渗透测试( B )
A、APPScan
B、Sqlmap
C、火狐插件
D、Metasploit
- 你会选择哪一款工具对MS08-067远程溢出漏洞进行渗透测试 ( C )
A、Burpsuite
B、AWVS
C、Metasploit
D、Sqlmap
- /test.asp;1.jpg属于哪一种中间件的解析漏洞 ( B )
A、Apache
B、IIS
C、Tomcat
D、Weblogic
- 你认为下面哪一种方式可以直接进入网站后台 ( D)
A、XSS跨站漏洞
B、任意文件下载
C、暴力破解
D、admin'or '1'='1
- 你认为对上传漏洞的修补,哪一种方式比较彻底 ( A )
A、对文件扩展名定义强壮的白名单策略
B、对文件扩展名定义强壮的黑名单策略
C、升级中间件到最新的版本
D、安装安全狗等WAF软件、赛门铁克等杀毒软件
这里说一下,对比黑名单策略,强壮的白名单对于文件上传漏洞的防御能力更加强大一些
- 作为一个管理员,服务器上存在的那些文件应该及时删除 ( A )
A、index.jsp.bak
B、login.jsp
C、web.xml
D、member.jspx
可能会造成信息泄露
- Tomcat日志功能在哪里进行设置__C_?
- tomcat-user.xml 用户名和密码
- web.xml
- server.xml 网站目录
- users.xml
- 下图为主机受到DOS攻击时,使用netstat –an 查看连接数的截图,请问该主机受到哪种类型的DOS攻击? A
- SYN-FLOOD
- 连接耗尽
- UDP-FLOOD
- CC
- 假设网站的download.jsp存在目录遍历漏洞,网站的绝对路径为/home/web/user/download.jsp,下列的语句,哪种攻击代码可以成功下载系统的passwd敏感文件? (B)
- ../../etc/passwd
- .././.././.././etc/passwd
- .././././.././././etc/passwd
- ..//..//..//etc/passwd
- NMAP工具有什么功能? A
- 端口扫描
- 漏洞扫描
- 注入
- 密码破解
- MS12-020及MS15-034可以达到的攻击效果为? B
- 拿到webshell
- 造成Windows操作系统蓝屏重启
- 获取数据库
D.泄露敏感信息
多选题
- 下列密码属于弱口令的是( ABCD) 注意D选项
A、iloveu1988
B、123!@#456
C、P@ssw0rd
D、1qaz@WSX#EDC
- 下列扫描工具中哪些主要用来进行WEB应用漏洞扫描( B C )
Jsky是什么????我也是事后才知道…
A、Nessus
B、AWVS
C、Jsky
D、Metasploit
- 跨站脚本攻击XSS包括哪三大类型(ABD)
A、存储型跨站
B、反射型跨站
C、CSRF、DOS型
D、DOM跨站
- SQL注入攻击可以造成的危害性有哪些(ABCD)
A、获取用户身份证信息、个人密码、聊天记录等等
B、私自添加管理员账号
C、向服务器写一个木马文件、永久的后门
D、使网站甚至服务器造成永久性的、无法挽回的破坏
- XSS反射型跨站可以造成的危害性有哪些(ABCD)Java
A、获取用户的密码信息
B、私自添加管理员账号
C、向网站植入木马
D、进行提权操作
- SQL注入中空格被过滤的话,哪些字符可以替代(ABCD)
A、%0A
B、%09
C、/**/
D、%0D
- 哪些SQL语句可以绕过WAF拦截并且是正确的(ABCD)
A、select%0A111%0Bfromadmin
B、s%ele%ct(111)fr%omadm%in
C、seLseLectect111 FrFroMoM admin
D、select/*id?=1*/111/*id?=1*/fromadmin
- 以下哪些Struts2漏洞是2017年新出的(BC )
A、Struts2-016
B、Struts2-045
C、Struts2-052
D、Struts2-022
问答题
1. 请简要说明Burpsuite、AWVS、sqlmap、Nmap、Metasploit这些工具在渗透
测试中的用途。
Burpsuite:最重要的还是burpproxy来抓包,改包。
intruder攻击框架,
spider网站爬虫
repeater 通过proxy发过来的数据包,可以更直观的更改数据包来看到http的响应。
decoder:常用的编码解码工具
AWVS:知名的网络漏洞综合扫描器。
Sqlmap:常用的sql注入工具,其中包括
1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4、联合查询注入,可以使用union的情况下的注入。
5、堆查询注入,可以同时执行多条语句的执行时的注入。
Nmap:常用的还是端口扫描等等的信息收集,也可以安装一些上手的插件来做辅助。
Metasploit:安全漏洞的检测工具,通过信息收集,来判断出可能存在的主机漏洞,从而调用一些payload来exploit
2. 请简要说明SQL注入、XSS漏洞、CSRF漏洞的原理及修补方案。
首先就这三种漏洞而言,均属于WEB漏洞,
所以问题大部分都出在代码的逻辑和非法字符的过滤上。
原理
1)SQL注入:设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等
2)XSS漏洞:XSS主要应用于钓鱼诈骗,盗取密码和个人隐私等,XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站建设也产生了较严重的危害。
3)CSRF :和XSS做对比的是,前者称为跨站请求伪造,后者则称为跨站脚本攻击。
如果说XSS是一直凶猛的野兽,那么CSRF则更像是在草丛中,伺机而动的蛇。
通过盗用用户cookie,来伪造邮件,盗取账号,甚至付款等等。XSS攻击使用到的技术主要为HTML和Java,也包括VB和Action等。XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。
防御方面
1.SQL注入方面:常见的防范方法
(1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。
(2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。
(3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
(4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
(5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
(6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
(7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
(8)在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
2.常用的防止XSS技术包括:
(1)与SQL注入防护的建议一样,假定所有输入都是可疑的,必须对所有输入中的、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
(2)不仅要验证数据的类型,还要验证其格式、长度、范围和内容。
(3)不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
(4)对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。
(5)在发布应用程序之前测试所有已知的威胁。
3.关于CSRF的防御
(1).CookieHashing(所有表单都包含同一个伪随机值):
这可能是最简单的解决方案了,因为攻击者不能获得第三方的Cookie(理论上),所以表单中的数据也就构造失败了:>
(2).验证码
这个方案的思路是:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串,厄....这个方案可以完全解决CSRF,但个人觉得在易用性方面似乎不是太好,还有听闻是验证码图片的使用涉及了一个被称为MHTML的Bug,可能在某些版本的微软IE中受影响。
(3).One-TimeTokens(不同的表单包含一个不同的伪随机值)
在实现One-TimeTokens时,需要注意一点:就是“并行会话的兼容”。如果用户在一个站点上同时打开了两个不同的表单,CSRF保护措施不应该影响到他对任何表单的提交。考虑一下如果每次表单被装入时站点生成一个伪随机值来覆盖以前的伪随机值将会发生什么情况:用户只能成功地提交他最后打开的表单,因为所有其他的表单都含有非法的伪随机值。必须小心操作以确保CSRF保护措施不会影响选项卡式的浏览或者利用多个浏览器窗口浏览一个站点。
(此题如果要答的全面的话,估计要写很多,不过个人认为,简明扼要的去叙述自己的观点就可以了,因为卷子给的地方太小了,写不下这么多……)
3. 请列举常见的上传漏洞(至少写出十种),并简要说明其利用方法。
一开始读完题的时候,我都是懵逼的...
十种,挠头了半天也想不出来十种...
后来才知道自己功力不行,忘了web容器的解析漏洞也算是上传漏洞。
答案
IIS解析漏洞有两种:
1.当建立*.asa、*.asp格式的文件夹时,其目录下的任意文件都将被IIS当作asp文件来解析。
2.当文件为*.asp;1.jpg时,IIS6.0同样会以ASP脚本来执行。
Apache解析漏洞test.php.x1.x2.x3;
3.在Apache1.x和Apache2.x中1.php.rar会被当作php文件执行。
上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
本地上传绕过:
4.前台脚本检测扩展名—绕过
当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台脚本检测扩展名。
5.Content-Type检测文件类型—绕过
当浏览器在上传文件到服务器的时候,服务器对说上传文件的Content-Type类型进行检测,如果是白名单允许的,则可以正常上传,否则上传失败。
6.文件系统00截断—绕过
在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束。利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。
7.服务器端扩展名检测黑名单—绕过
当浏览器将文件提交到服务器端的时候,服务器端会根据设定的黑白名单对浏览器提交上来的文件扩展名进行检测,如果上传的文件扩展名不符合黑白名单的限制,则不予上传,否则上传成功。
8.JS检测上传文件—绕过
上传文件时,对方使用Java语句语法检测上传文件的合法性问题。
9.重写解析规则—绕过
上传覆盖.htaccess文件,重写解析规则,将上传的带有脚本马的图片以脚本方式解析。
10.后缀名大小写绕过
用于只将小写的脚本后缀名(如php)过滤掉的场合;
例如:将Burpsuite截获的数据包中的文件名【evil.php】改为【evil.Php】
11.双写后缀名绕过
用于只将文件后缀名,例如"php"字符串过滤的场合;
例如:上传时将Burpsuite截获的数据包中文件名【evil.php】改为【evil.pphphp】,那么过滤了第一个"php"字符串"后,开头的'p'和结尾的'hp'就组合又形成了【php】。
12. 特殊后缀名绕过
用于检测文件合法性的脚本有问题的场合;
例如:将Burpsuite截获的数据包中【evil.php】名字改为【evil.php6】,或加个空格改为【evil.php】等。
4. 公司获得授权对一家金融公司从外网做白盒测试,目标是取得内网域控权限及核心业务系统权限,请具体描述您的渗透步骤。
第一步,明确目标并进行信息收集:
包括但不限于:
whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙,后台,未授权页面,敏感url,域名注册人员信息,web应用中网站发帖人的id,管理员姓名,各个端口应用。
第二步,漏洞探索
- 漏洞综合扫描
- 主机漏洞
- web容器配置问题,或老版本容器漏洞
- web应用漏洞,各个业务单元的漏洞。
- 端口服务漏洞,常见的各个端口弱口令等
第三步,漏洞验证
将上步发现存在或可能存在的漏洞,都对其进行一一检查。
- 自动化验证:Sqlmap metasploit
- 手工验证,根据公开资源进行验证
- 试验验证:自己搭建模拟环境进行验证
- 登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
- 业务漏洞验证:如发现业务漏洞,要进行验证
找到信息收集的通用、缺省口令等
第四步,进一步测试
当拿到系统权限时,进行进一步的内网入侵,重复二三步。
第五步,信息整理
通过渗透测试所拿到的信息,整理漏洞过程中的poc,exp等
记录操作中的步骤,以及高危漏洞获得权限的位置,web应用漏洞位置。
第六步,生成报告
根据信息整理的结果,生成完整的渗透测试报告,对于发现的漏洞,提出可修复意见。
5. 现在公司获得授权对京东或者唯品会之类的电商网站做渗透测试,请简要描述其可能存在哪些类型的漏洞及您的测试步骤。
电商与其他类型网站不同,涉及大量用户及支付功能的安全漏洞更加复杂。
5.1验证码回传漏洞
抓取response数据包检查信息。
5.2任意用户注册漏洞
第一步,利用自己的手机号接收验证码进行验证,下一步跳转到一个设定密码的页面
第二步,抓包,篡改手机号,使用任意手机号进行注册
5.3短信轰炸
第一种,有一定时间间隔,无限下发。
第二种,无限制,无限下发。
5.4暴力破解
暴力穷举的方式大量尝试性的猜破密码。
5.4业务一致性安全
通过抓包修改手机号码参数为其他号码尝试获取信息
例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,查看是否能查询其他人的业务。
邮箱或者用户篡改
抓包修改用户或者邮箱参数为其他用户或者邮箱
订单id篡改
查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息。
商品编号篡改
5.5 业务数据篡改
金额数据篡改
抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程。
商品数量篡改
抓包修改商品数量等字段,将请求中的商品数量修改成任意数额,如负数并提交,查看能否以修改后的数量完成业务流程。
最大数限制突破
很多商品限制用户购买数量时,服务器仅在页面通过js脚本限制,未在服务器端校验用户提交的数量,通过抓包修改商品最大数限制,将请求中的商品数量改为大于最大数限制的值,查看能否以修改后的数量完成业务流程。
本地js参数修改
部分应用程序通过Java处理用户提交的请求,通过修改Java脚本,测试修改后的数据是否影响到用户。
电商关注的是业务逻辑漏洞、越权。具体的就是价格篡改、订单便利、客户敏感信息泄露等等漏洞,并描述漏洞测试方法及测试点有哪些