1.为何一个 MYSQL 数据库的站,只有一个 80 端口开放?
更改了端口,没有扫描出来;站库分离;3306 端口不对外开放。
2.一个成熟并且相对安全的 CMS,渗透时扫目录的意义?
敏感文件、二级目录扫描;站长的误操作比如:网站备份的压缩文件、说明txt、二级目录可能存放着其他站点。
3.在某后台新闻编辑界面看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞。
4.审查上传点的元素有什么意义?
有些站点的上传文件类型限制是在前端实现的,这时只要增加上传类型就能突破限制了。
5.CSRF、XSS 及 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等 攻击。修复方式:对字符实体进行转义、使用 HTTP Only 来禁 JavaScript 读取 Cookie 值、输入时校验、浏览器与 Web 应用端采用相同的字符编码。 CSRF 是跨站请求伪造攻击,XSS 是实现 CSRF 的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范 CSRF 的页面然后嵌入Token、再次输入密码、检验 Referer。XXE 是 XML 外部实体注入攻击,XML 中可以通过调用实体来请求本地或者远程内容,和远 程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML 解析库在调用时严格禁止对外部实体的解析。
6.33389 无法连接的几种情况
没开放 3389 端口;端口被修改;防护拦截;处于内网(需进行端口转发)
7.列举出 owasp top10 2019
1)注入;2)失效的身份认证;3)敏感信息泄露;4)XML 外部实体(XXE); 5)失效的访问控制;6)安全配置错误;7)跨站脚本(XSS);8)不安全的反序列化;9)使用含有已知漏洞的组件;10)不足的日志记录和监控。
8.说出至少三种业务逻辑漏洞,以及修复方式?
密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码;身份认证漏洞中最常见的是会话固定攻击和 Cookie 仿冒,只要得到 Session 或 Cookie 即可伪造用户身份;验证码漏洞中存在验证码允许暴力破解、验证码可以通过 Javascript 或者改包的方法来进行绕过。
9.在渗透过程中,收集目标站注册人邮箱对我们有什么价值?
丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。 用邮箱做关键词进行丢进搜索引擎。 利用搜索到的关联信息找出其他邮进而得到常用社交账号。 社工找出社交账号,里面或许会找出管理员设置密码的习惯 。 利用已有信息生成专用字典。 观察管理员常逛哪些非大众性网站,拿下它,你会得到更多好东西。
10.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码;其实有些站点,在登陆处也会这样提示;所有和数据库有交互的地方都有可能有注入。
11、CSRF和XSS和 XXE有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer.
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
12.CSRF、SSRF 和重放攻击有什么区别?
CSRF 是跨站请求伪造攻击,由客户端发起 SSRF 是服务器端请求伪造,由服务器发起重放攻击是将截获的数据包进行重放,达到身份认证等目的。
13.sql 注入的几种类型?
1)报错注入 2)bool 型注入 3)延时注入 4)宽字节注入
14.盲注是什么?怎么盲注?
盲注是在 SQL 注入攻击过程中,服务器关闭了错误回显,我们单纯通过服务器返回内容的变化来判断是否存在 SQL 注入和利用的方式。盲注的手段有两种,一个是通过页面的返回内容是否正确 (boolean-based),来验证是否存在注入。一个是通过 sql 语句处理时间的不同来判断是否存在注入(time-based),在这里,可以用 benchmark,sleep 等造成延时效果的函数,也可以通过构造大笛卡儿积的联合查询表来达到延时的目的。
15.入侵Linux服务器后需要清除哪些日志?
web 日志,如 apache 的 access.log,error.log。直接将日志清除过于明显,一般使用 sed 进行定向清除 e.g. sed -i -e ‘/192.169.1.1/d’ history 命令的清除,也是对~/.bash_history 进行定向清除 wtmp 日志的清除,/var/log/wtmp 登录日志清除 /var/log/secure
16.为什么 aspx 木马权限比 asp 大?
aspx 使用的是.net 技术。IIS 中默认不支持,ASP 只是脚本语言而已。入侵的时候 asp 的木马一般是 guest 权限…APSX 的木马一般是 users 权限。
17.给你一个网站你是如何来渗透测试的?
在获取书面授权的前提下。 1)信息收集
-
获取域名的whois信息,获取注册者邮箱姓名电话等。
-
查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
-
查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
-
查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等
-
扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
-
google hack 进一步探测网站的信息,后台,敏感文件
2)漏洞扫描
-
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,
-
远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
3)漏洞利用
-
利用以上的方式拿到webshell,或者其他权限
4)权限提升
-
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,
-
linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
5) 日志清理 6)总结报告及修复方案
18.渗透测试流程
项目访谈
信息收集:whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息
漏洞扫描:Nessus, AWVS
手动挖掘:逻辑漏洞
验证漏洞
修复建议
(如果有)基线检查/复验漏洞
输出报告
概述
测试基本信息
测试范围
测试时间
测试任务
测试过程
信息安全风险综合分析
整体风险分析
风险影响分析
系统安全分析
安全漏洞列表
解决方案建议
复测报告
19.CSRF、SSRF和重放攻击有什么区别?
CSRF是跨站请求伪造攻击,由客户端发起 SSRF是服务器端请求伪造,由服务器发起 重放攻击是将截获的数据包进行重放,达到身份认证等目的
20.SQL注入的原理
通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通常未经检查或者未经充分检查的用户输入数据或代码编写问题,意外变成了代码被执行。
21.如何进行SQL注入的防御
-
关闭应用的错误提示
-
加waf
-
对输入进行过滤
-
限制输入长度
-
限制好数据库权限,drop/create/truncate等权限谨慎grant
-
预编译好sql语句,python和Php中一般使用?作为占位符。这种方法是从编程框架方面解决利用占位符参数的sql注入,只能说一定程度上防止注入。还有缓存溢出、终止字符等。
-
数据库信息加密安全(引导到密码学方面)。不采用md5因为有彩虹表,一般是一次md5后加盐再md5
-
清晰的编程规范,结对/自动化代码 review ,加大量现成的解决方案(PreparedStatement,ActiveRecord,歧义字符过滤, 只可访问存储过程 balabala)已经让 SQL 注入的风险变得非常低了。
-
具体的语言如何进行防注入,采用什么安全框架
22.sqlmap,怎么对一个注入点注入?
-
如果是get型号,直接,sqlmap -u “诸如点网址”.
-
如果是post型诸如点,可以sqlmap -u "注入点网址” --data=“post的参数”
-
如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用*号替换,放到文件里,然后sqlmap -r “文件地址”
23.SQL注入类型
-
基于报错注入
-
基于布尔的注入,根据返回页面判断条件真假的注入
-
基于时间的盲注,不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
-
宽字节注入
-
联合查询,可以使用 union 的情况下的注入。
-
堆查询注入,可以同时执行多条语句的执行时的注入。
24.SQL注入防护方法
-
失效的身份认证和会话管理
-
跨站脚本攻击XSS
-
直接引用不安全的对象
-
安全配置错误
-
敏感信息泄露
-
缺少功能级的访问控制
-
跨站请求伪造CSRF
-
使用含有已知漏洞的组件
-
未验证的重定向和转发
##
25.判断出网站的CMS对渗透有什么意义?
查找网上已曝光的程序漏洞。如果开源,还能下载相对应的源码进行代码审计。
26.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?
直接在网站二级目录/abc/下扫描敏感文件及目录。
27.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
审查元素 把密码处的password属性改成text就明文显示了
28.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?
原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过。
29.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到<hws>内容<hws>。
30、说出至少三种业务逻辑漏洞,以及修复方式?
密码找回漏洞中存在
1)密码允许暴力破解、
2)存在通用型找回凭证、
3)可以跳过验证步骤、
4)找回凭证可以拦包获取
等方式来通过厂商提供的密码找回功能来得到密码。
身份认证漏洞中最常见的是
1)会话固定攻击
2) Cookie 仿冒
只要得到 Session 或 Cookie 即可伪造用户身份。
验证码漏洞中存在
1)验证码允许暴力破解
2)验证码可以通过 Javascript 或者改包的方法来进行绕过
31.关于sql注入,都分为那些?
主要分为两个大类,有回显和无回显。其中无回显的称为盲注,包括时间盲注、DNSlog注入也算一种,布尔盲注;有回显的包括联合注入、报错注入、宽字节注入、堆叠注入、二次注入也算是。
32.DNSlog注入,用到那些函数?
load_file database() concat() ascii()
33.如果在实战中遇到了防护,比如sql注入过滤掉了空格怎么办?
用%0a代替,或者%20
34.过滤select、union等关键字呢?
可以使用大小写绕过,如果只是替换检测可以使用双写绕过,还可以用注释 符,例如s/**/elect等
35.sql注入防护方法?
可以使用黑白名单,其中白名单效果好,例如只能是数字,对接收到的数据进行整数化,还可以降低权限,最后是可以进行预编译。
36.关于文件上传你知道的有什么?
文件上传的话,主要是对上传的文件没有进行相应的防护,从而导致的。一般情况下常与其他的漏洞进行配合,拿到shell。
37.关于文件上传,如果过滤了文件名(黑名单)怎么办?
如果是windows的话,可以在文件名后面加上.、,例如cmd.php. || cmd.php,还可以试一试文件流::$DATA;如果是linux的话,可以使用%00截断
38.针对apache的文件上传,可以使用什么?
可以使用.htaccess(局部配置文件)文件进行上传,从而对指定的文件进行解析。
39.csrf和ssrf你懂多少?
关于csrf是客户端请求伪造,ssrf是服务器端请求伪造。两者最大的区别是,ssrf可以造成更大的危害。csrf的话主要是利用cookie。防护csrf可以启用HTTPonly、还可以验证referer值(这种不可靠),还可以加token值。
40.sqlmap中写入shell需要的条件是什么?
Mysql中写入shell使用的是into outfile(),需要root权限;文件的绝对路径;配置文件File_priv的权限(为空或知道指定目录)
41.常见端口你知道那些?
DNS 53 SMTP 25 SSH 22 远程桌面 3389 FTP 21 mysql 3306 sqlserver 1433 web 80/8080/443/8443 telnet 23 redis 6379 postgresql 5432 dhcp 67/68 vnc 5900 nfc 2049 CIFS($IPC) 445 oracle 1521
42.关于apache的shrio反序列化,你知道什么?
shrio反序列化分为两种,一种是550,一种是721,两者对应的版本不同,550主要是小于1.2.4,721是1.2.5-1.4.1这个版本。其次使用的方法也不同,总体来说,shrio提供一个rememberme的一个选项,选中后会把cookie保存到客户端,保存的过程是,反序列化→AES→base64。
43.windows和linux查看计划任务用那些命令?
windows的话用at和schtasks(虽然at已经弃用,但可以展示你懂的比较多);linux的话使用at添加一次性,使用crontab添加周期性任务,其中-e: 编辑计划任务 edit;-l: 查看计划任务 display;-u: 指定用户 user;-r: 删除计划任务 remove。
44.ssrf可以造成那些危害?
可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的版本信息;攻击运行在内网或本地的应用程序;对内网 WEB 应用进行指纹识别,通过访问默认文件实现(如:readme文件);攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击(如:Struts2,sqli);下载内网资源(如:利用file协议读取本地文件等);进行跳板;无视cdn;利用Redis未授权访问,HTTP CRLF注入实现getshell
45.crlf了解吗、怎么绕过?
crlf是指cr回车、lf换行,绕过方法可以使用url单、双编码,还可以将/r/n换为ascii
46.同源策略什么意思?
同IP、同端口、同协议。
47.xss如何过滤的
可以使用a标签、input、svg、video、audio、img标签,其中还可以使用style标签,使用方式是style=“xss:expression(alert(/xss/)”。
48.xss常用的JS编码举例?
html的话可以使用十进制、十六进制;JS代码可以使用3个八进制、两个十六进制、四个十六进制(Unicode编码)还可以使用JSfuck代替
49.了解过xxe漏洞吗?
了解过、xxe漏洞就是XML外部实体注入漏洞,利用DTD可以进行内部引用、外部引用、引用公告DTD、引用参数DTD,XXE漏洞可以造成DDOS攻击、文件读取、命令执行、SQL执行、内外网端口扫描、入侵内网站点;他的防护方式可以是进入外部实体。
50.说到rce漏洞(命令执行),如果过滤掉了cat命令,还可以用什么?
还可以使用more、less、head、tail、tac、sort、uniq、file -f、vi/vim、nl/od
51.include和require,你知道他们的区别吗?
incude遇到报错还会执行,require遇到错误直接停止了。
52.如何突破注入时字符被转义?
宽字符注入 hex编码绕过
53.在有shell的情况下,如何使用xss实现对目标站的长久控制?
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。 在登录后才可以访问的文件中插入XSS脚本。
54.你常用的渗透工具有哪些,最常用的是哪个?
burp、nmap、sqlmap、awvs、蚁剑、冰蝎、dirsearch、御剑等等
55.信息收集如何处理子域名爆破的泛解析问题
目前最常见的解决方式是IP黑名单的方式,首先访问一个随机的并不存在的域,通过返回的结果判断是否存在泛解析,确定存在泛解析后,(脚本实现)不断的生成随机域名并发送请求,将每次返回的IP和TTL记录下来,直到大部分的IP出现次数都大于两次,则IP黑名单收集完成。 而后使用域名字典进行爆破,爆破过程中根据IP黑名单进行过滤,同时比较TTL,在泛解析记录中TTL是相同的,如果TTL不相同,则不是泛解析记录。
56.如何绕过CDN查找真实ip
(1)查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/ ###DNS查询 https://x.threatbook.cn/ ###微步在线 http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询 http://viewdns.info/ ###DNS、IP等查询 https://tools.ipip.net/cdn.php ###CDN查询IP
(2)利用SecurityTrails平台,攻击者就可以精准的找到真实原始IP。他们只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。
方法2:查询子域名 毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。
方法3:网络空间引擎搜索法 常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip
方法4:利用HTTP标头寻找真实原始IP 借助SecurityTrails这样的平台,任何人都可以在茫茫的大数据搜索到自己的目标,甚至可以通过比较HTTP标头来查找到原始服务器。 特别是当用户拥有一个非常特别的服务器名称与软件名称时,攻击者找到你就变得更容易。 如果要搜索的数据相当多,如上所述,攻击者可以在Censys上组合搜索参数。假设你正在与1500个Web服务器共享你的服务器HTTP标头,这些服务器都发送的是相同的标头参数和值的组合。而且你还使用新的PHP框架发送唯一的HTTP标头(例如:X-Generated-Via:XYZ框架),目前约有400名网站管理员使用了该框架。而最终由三个服务器组成的交集,只需手动操作就可以找到了IP,整个过程只需要几秒钟。 例如,Censys上用于匹配服务器标头的搜索参数是80.http.get.headers.server :,查找由CloudFlare提供服务的网站的参数如下: 80.http.get.headers.server:cloudflare 方法5:网站邮件头信息 比如说,邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。
网络安全入门学习路线
其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。
1.网络安全法和了解电脑基础
其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...
别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图:
学到http和https抓包后能读懂它在说什么就行。
2.网络基础和编程语言
3.入手Web安全
web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。
最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。
等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。
这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。
学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。
其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。
4.安全体系
不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。
所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
尾言
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦! 网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!