思路流程
信息收集
1. 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF 等)
2. 网站指纹识别(包括,cms,cdn,证书等),dns 记录
3. whois 信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)
4. 子域名收集,旁站,C 段等
5. googlehacking 针对化搜索,pdf 文件,中间件版本,弱口令扫描等
6. 扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等
7. 传输协议,通用漏洞,exp,github 源码等
1. 浏览网站,看看网站规模,功能,特点等
2. 端口,弱口令,目录等扫描,对响应的端口进行漏洞探测,比如rsync,心脏出血,mysql,ftp,ssh 弱口令
等。3. XSS,SQL 注入,上传,命令注入,CSRF,cookie 安全检测,敏感信息,通信数据传输,暴力破解,
任意文件上传,越权访问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器漏
洞检测,最后使用漏扫工具等
漏洞挖掘
漏洞利用&权限提升
mysql 提权,serv-u 提权,oracle 提权
windows 溢出提权
linux 脏牛,内核漏洞提权e
清除测试数据&输出报告
日志、测试数据的清理
总结,输出渗透测试报告,附修复方案
复测
验证并发现是否有新漏洞,输出报告,归档
问题
者其他漏洞。
解析漏洞
弱口令等。
信息生成专用字典。
1.拿到一个待检测的站,你觉得应该先做什么?
箱进而得到常用社交账号。社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有
用泄露的密码进行登录后台。用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮
a、信息收集
1、获取域名的whois 信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试
2、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms 或
3、查看服务器操作系统版本,web 中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX 的
4、查看IP,进行IP 地址端口扫描,对响应的端口进行漏洞探测,比如rsync,心脏出血,mysql,ftp,ssh
5、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php 探针
6、googlehack 进一步探测网站的信息,后台,敏感文件
b、漏洞扫描
开始检测漏洞,如XSS,XSRF,sql 注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,
c、漏洞利用
利用以上的方式拿到webshell,或者其他权限
d、权限提升
提权服务器,比如windows 下mysql 的udf 提权,serv-u 提权,windows 低版本的漏洞,如iis6,pr,
巴西烤肉,linux 脏牛漏洞,linux 内核版本漏洞提权,linux 下的mysqlsystem 提权以及oracle 低权
限提权e、日志清理
f、总结报告及修复方案
下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
2.判断出网站的 CMS 对渗透有什么意义?
查找网上已曝光的程序漏洞。
如果开源,还能下载相对应的源码进行代码审计。
3.一个成熟并且相对安全的 CMS,渗透时扫目录的意义?
敏感文件、二级目录扫描
4.常见的网站服务器容器。
站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点
IIS、Apache、nginx、Lighttpd、Tomcat
root 权限以及网站的绝对路径。
5.mysql 注入点,用工具对目标站直接写入一句话,需要哪些条件?
6.目前已知哪些版本的容器有解析漏洞,具体举例。
9、3389 无法连接的几种情况
站库分离。
端口被修改
防护拦截
7.如何手工快速判断目标站是 windows 还是 linux 服务器?
8.为何一个 mysql 数据库的站,只有一个 80 端口开放?
更改了端口,没有扫描出来。
a、IIS6.0
/xx.asp/xx.jpg"xx.asp"是文件夹名
b、IIS7.0/7.5
默认Fast-CGI 开启,直接在url 中图片地址后面输入/1.php,会把正常图片当成php 解析
c、Nginx
版本小于等于0.8.37,利用方法和IIS7.0/7.5 一样,Fast-CGI 关闭情况下也可利用。空字节代码
xxx.jpg.php
d、Apache 上传的文件命名为:test.php.x1.x2.x3,Apache 是从右往左判断后缀
e、lighttpdxx.jpg/xx.php,不全,请小伙伴们在评论处不吝补充,谢谢!
linux 大小写敏感,windows 大小写不敏感。
3306 端口不对外开放
没开放3389 端口
处于内网(需进行端口转发)
hex 编码绕过
查看编辑器的名称版本,然后搜索公开的漏洞。
插入SetHandlerapplication/x-httpd-php
.jpg 文件会被解析成.php 文件。
12.拿到一个 webshell 发现网站根目录下有.htaccess 文件,我们能做什么?
能做的事情很多,用隐藏网马来举例子:
10.如何突破注入时字符被转义?
宽字符注入
具体其他的事情,不好详说,建议大家自己去搜索语句来玩玩。
13.注入漏洞只能查账号密码?
只要权限广,拖库脱到老。
14.安全狗会追踪变量,从而发现出是一句话木马吗?
是根据特征码,所以很好绕过了,只要思路宽,绕狗绕到欢,但这应该不会是一成不变的。
**15.access 扫出后缀为asp 的数据库文件,访问乱码,**如何实现到本地利用?
迅雷下载,直接改后缀为.mdb。
因为exp 执行多半需要空格界定参数
16.提权时选择可读写目录,为何尽量不用带空格的目录?
11.在某后台新闻编辑界面看到编辑器,应该先做什么?
那步骤去。
19:某个防注入系统,在注入时会提示:
系统检测到你有非法注入的行为。
17.某服务器有站点 A,B 为何在 A 的后台添加 test 用户,访问 B 的后台。发现也添加上了 test 用户?
同数据库。
18.注入时可以不使用 and 或 or 或 xor,直接 order by 开始注入吗?
and/or/xor,前面的1=1、1=2 步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省
已记录您的ipxx.xx.xx.xx
时间:2016:01-23
提交页面:test.asp?id=15
提交内容:and1=1
在URL 里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻
找网站的配置文件 直接上菜刀链接。
21.上传大马后访问乱码时,有哪些解决办法?
浏览器中改编码。
22.审查上传点的元素有什么意义?
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。
23.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码。
20、如何利用这个防注入系统拿 shell?
其实有些站点,在登陆处也会这样提示
所有和数据库有交互的地方都有可能有注入。
24.目标站发现某 txt 的下载地址为
26.在有 shell 的情况下,如何使用 xss 实现对目标站的长久控制?
续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。
25.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和 admin 目
录。请问你的想法是?
http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?
这就是传说中的下载漏洞!在file=后面尝试输入index.php 下载他的首页文件,然后在首页文件里继
直接在网站二级目录/abc/下扫描敏感文件及目录。
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记
录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控
制权限的网络)。
在登录后才可以访问的文件中插入XSS 脚本。
审查元素 把密码处的password 属性改成text 就明文显示了
原因很多,有可能web 服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过
27.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
28.目标站无防护,上传图片可以正常访问,上传脚本格式访问则 403.什么原因?
29.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
32、以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?
成测试
33、发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?
这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后
34、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS 是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复
就可以在名称那看到内容。
30.在 win2003 服务器中建立一个 .zhongzi 文件夹用意何为?
隐藏文件夹,为了不让管理员发现你传上去的工具。
31、sql 注入有以下两个测试选项,选一个并且阐述不选另一个的理由:
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12 看HTML 体部 比如护卫神
A.demo.jsp?id=2+1
B.demo.jsp?id=2-1
选B,在URL 编码中+ 代表空格,可能会造成混淆
demo.do?DATA=AjAxNg==
DATA 有可能经过了base64 编码再传入服务器,所以我们也要对参数进行base64 编码才能正确完
有写入权限的,构造联合查询语句使用usingINTOOUTFILE,可以将查询的输出重定向到系统的文
件中,这样去写入WebShell 使用sqlmap–os-shell 原理和上面一种相同,来直接获得一个Shell,
台通过改包上传等方法上传Shell
方式:对字符实体进行转义、使用HTTPOnly 来禁止JavaScript 读取Cookie 值、输入时校验、浏览
器与Web 应用端采用相同的字符编码。
CSRF 是跨站请求伪造攻击,XSS 是实现CSRF 的诸多手段中的一种,是由于没有在关键操作执行时
进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF 的页面然后嵌入Token、再次输
入密码、检验RefererXXE 是XML 外部实体注入攻击,XML 中可以通过调用实体来请求本地或者远
程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML 解析库
CSRF 是跨站请求伪造攻击,由客户端发起SSRF 是服务器端请求伪造,由服务器发起 重放攻击是将
1)密码允许暴力破解、
2)存在通用型找回凭证、
3)可以跳过验证步骤、
4)找回凭证可以拦包获取
1)会话固定攻击
2)Cookie 仿冒
只要得到Session 或Cookie 即可伪造用户身份。验证码漏洞中存在
在调用时严格禁止对外部实体的解析。
35、CSRF、SSRF 和重放攻击有什么区别?
截获的数据包进行重放,达到身份认证等目的
36、说出至少三种业务逻辑漏洞,以及修复方式?
密码找回漏洞中存在
等方式来通过厂商提供的密码找回功能来得到密码。身份认证漏洞中最常见的是
1)验证码允许暴力破解
2)验证码可以通过Javascript 或者改包的方法来进行绕过
37、圈出下面会话中可能存在问题的项,并标注可能会存在的问题?
get /ecskins/demo.jsp?uid=2016031900&keyword=”hello
world”HTTP/1.1Host:***.com:82User-Agent:Mozilla/5.0
Firefox/40Accept:text/css,/;q=0.1Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3Refere
r:http://*******.com/eciop/orderForCC/cgtListForCC.htm?zone=11370601&v=145902Cookie:myguid
1234567890=1349db5fe50c372c3d995709f54c273d;uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;s
t_uid=N90PLYHLZGJXI-NX01VPUF46W;status=TrueConnection:keep-alive
这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后
38、给你一个网站你是如何来渗透测试的?在获取书面授权的前提下。
39、sqlmap,怎么对一个注入点注入?
有写入权限的,构造联合查询语句使用usingINTOOUTFILE,可以将查询的输出重定向到系统的文
件中,这样去写入WebShell 使用sqlmap–os-shell 原理和上面一种相同,来直接获得一个Shell,
台通过改包上传等方法上传Shell
1)如果是get 型号,直接,sqlmap-u"诸如点网址".
2) 如果是post 型诸如点,可以sqlmap-u"注入点网址”--data="post 的参数"
3)如果是cookie,X-Forwarded-For 等,可以访问的时候,用burpsuite 抓包,注入处用号替换,放
到文件里,然后sqlmap-r"文件地址"
1)报错注入
2)bool 型注入
3)延时注入
4)宽字节注入
40、nmap,扫描的几种方式
41、sql 注入的几种类型?
42、报错注入的函数有哪些?10 个
1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】2)通过 floor 报错 向下取整 3)
+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)4).geometrycollection()select from
test where id=1 and geometrycollection((select from(selectfrom(select
user())a)b));5).multipoint()select from test where id=1 and multipoint((select from(select
from(select user())a)b));6).polygon()select from test where id=1 and polygon((select
from(select from(select user())a)b));7).multipolygon()select from test where id=1 and
multipolygon((select from(select from(select user())a)b));8).linestring()select from test
where id=1 and linestring((select from(select from(select
user())a)b));9).multilinestring()select from test where id=1 and multilinestring((select
from(select from(select user())a)b));10).exp()select from test where id=1 and exp(~(select
* from(select user())a));
43、延时注入如何来判断?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
44、盲注和延时注入的共同点?都是一个字符一个字符的判断
45、如何拿一个网站的 webshell?上传,后台编辑模板,sql 注入写文件,命令执行,代码执行, 一
些已经爆出的cms 漏洞,比如dedecms 后台可以直接建立脚本文件,wordpress 上传插件包含脚本
文件zip 压缩包等
46、sql 注入写文件都有哪些函数?
select '一句话' into outfile '路径'select '一句话' into dumpfile '路径'select '' into dumpfile 'd:\wwwroot\baidu.com\nvhack.php';
47、如何防止 CSRF?
48、owasp 漏洞都有哪些?
1,验证referer
2,验证token
详细:http://cnodejs.org/topic/5533dd6e9138f09b629674fd
1、SQL 注入防护方法:
2、失效的身份认证和会话管理
3、跨站脚本攻击XSS
4、直接引用不安全的对象
5、安全配置错误
6、敏感信息泄露
7、缺少功能级的访问控制
8、跨站请求伪造CSRF
9、使用含有已知漏洞的组件
10、未验证的重定向和转发
49、SQL 注入防护方法?
1、使用安全的API
2、对输入的特殊字符进行Escape 转义处理
3、使用白名单来规范化输入验证方法
4、对客户端输入进行控制,不允许输入SQL 注入相关的特殊字符
5、服务器端在提交数据库进行SQL 查询之前,对特殊字符进行过滤、转义、替换、删除。
50、代码执行,文件读取,命令执行的函数都有哪些?
1)代码执行:
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
2)文件读取:
file_get_contents(),highlight_file(),fopen(),read
file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等 3)命令执行:
system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
51、img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗?
52、img 标签除了 onerror 属性外,并且 src 属性的后缀名,必须以.jpg 结尾,怎么获取管理员路
src 指定一个远程的脚本文件,获取referer
径。1)远程服务器修改apache 配置文件,配置.jpg 文件以php 方式来解析AddType
application/x-httpd-php.jpg
会以php 方式来解析
aspx 使用的是.net 技术。IIS 中默认不支持,ASP 只是脚本语言而已。入侵的时候asp 的木马一般是
guest 权限…APSX 的木马一般是users 权限。
53、为什么 aspx 木马权限比 asp 大?
54、如何绕过 waf?
大小写转换法
编码 base64 unicode hex url ascll
55、如何向服务器写入 webshell?
干扰字符 /*!*/
复参数