盘点一些经常问到的渗透测试问题(干干干嚯嚯嚯货货货)答疑详解

打算整理一下经常碰到的问题,打算了快一个月,打算写了。
先写个标题吧。

怎样进行信息收集

1、要收集什么信息
·Whois
·端口探测
·子域名
·旁站
·C段
·目录扫描
·指纹识别
2、常用的在线工具
·whois.com
·站长之家
·潮汐指纹 http://finger.tidesec.com/
·ip反查域名 https://dns.aizhan.com/
·旁站 http://stool.chinaz.com/same
·Google Hack
·DNS查询,路由跟踪 https://www.boce.com/
·ip地址查询 http://ip.webmasterhome.cn/
3、信息收集思路
·获取目标真实IP,若有CDN就绕一下,判断cdn可以用全国ping,看结果来判断
·通过真实IP去进行半开放的端口扫描,获取目标服务,可以用nmap进行扫描
·通过审计JS代码 + Jsfinder工具查看是否存在接口泄露可以使我们进一步利用
·对站点进行指纹识别,查看CMS历史漏洞
·通过乌云查找目标的历史漏洞,查看脆弱点
·通过Google黑语法搜索目标站点的敏感关键词,如:登录、后台、学号、上传
·通过网络搜索引擎,fofa,bountyteam等收集站点信息
·通过dirsearch、御剑、dirmap等工具扫描目标站点文件,查看是否存在未授权访问文件或更多功能点
·扫描目标站点要注意403、302,对其进行二级目录扫描
·通过潮汐、在线子域名、layer子域名挖掘机进行子域名收集
·通过nmap、goby对C段进行信息收集
4、谷歌语法
site: 指定域名

filetype: 指定文件类型

inurl: 指定URL

intitle: 指定title

intext: 指定内容
5、怎么绕CDN找真实IP
·使用境外IP去ping目标系统
·主动向我方主机进行请求,如发邮件
·从子域名入手,获取多个子域名IP做对比,因为有些站点只配置了主域名
·查看DNS历史记录
·通过网络搜索引擎去搜索目标

网络&&端口服务

1、TCP与UDP的区别
TCP
·TCP是安全的传输协议,比如QQ传文件就是走的TCP协议
·TCP相较于传输速度比UDP慢
·TCP的报文长度大于UDP
·TCP是面向连接的
·TCP是点对点的通信方式

UDP
·UDP是不安全的传输协议,视频通话就是UDP协议
·UDP的传输速度要优于TCP
·UDP是不用连接的
·UDP可以是一对多的通信方式
2、端口服务
HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080
SOCKS代理协议服务器常用端口号:1080
FTP(文件传输)协议代理服务器常用端口号:21
Telnet(远程登录)协议代理服务器常用端口:23
HTTP服务器,默认的端口号为80/tcp(木马Executor开放此端口);
HTTPS(securely transferring web pages)服务器,默认的端口号为443/tcp 443/udp;
Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口);
FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)
TFTP(Trivial File Transfer Protocol),默认的端口号为69/udp;
SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;
SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口);
POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp;
WebLogic,默认的端口号为7001;
Webshpere应用程序,默认的端口号为9080;
webshpere管理工具,默认的端口号为9090;
JBOSS,默认的端口号为8080;
TOMCAT,默认的端口号为8080;
WIN2003远程登陆,默认的端口号为3389;
Symantec AV/Filter for MSE,默认端口号为 8081;
Oracle 数据库,默认的端口号为1521;
ORACLE EMCTL,默认的端口号为1158;
Oracle XDB(XML 数据库),默认的端口号为8080;
Oracle XDB FTP服务,默认的端口号为2100;
MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp;

3、各种端口对应的协议&&漏洞
21 ftp
22 SSH
23 Telnet 
80 HTTP      
161 SNMP
389 LDAP
443 SSL心脏滴血
445 SMB
512,513,514 Rexec
873 Rsync未授权
1025,111 NFS
1433 MSSQL
1521 Oracle:(iSqlPlus Port:5560,7778)
2601,2604 zebra路由,默认密码zebra
3306 MySQL       
3312/3311 kangle主机管理系统登陆
3389 远程桌面         
4440 rundeck
5432 PostgreSQL      
5900 vnc
5984 CouchDB http://xxx:5984/_utils/
6082 varnish         
6379 redis未授权
7001,7002 WebLogic默认弱口令,反序列
7778 Kloxo主机控制面板登录
8000-9090 都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上
7001,7002 WebLogic默认弱口令,反序列
7778 Kloxo主机控制面板登录
8080 tomcat/WDCP主机管理系统,默认弱口令
8080,8089,9090 JBOSS
8161 activemq未授权访问默认用户名和密码是admin
8888 amh/LuManager 主机管理系统默认端口
9200,9300 elasticsearch
10000 Virtualmin/Webmin 服务器虚拟主机管理系统
11211 memcache未授权访问
27017,27018 Mongodb未授权访问
28017 mongodb统计页面             
50000 SAP命令执行
50070,50030 hadoop默认端口未授权访问

漏洞原理及分类

1、SQL注入原理
由于网站对用户传入的SQL语句过滤不当,导致攻击者通过构造恶意的SQL语句传入到数据库执行,
出现了非预期的SQL语句,破坏了原有的语法树,导致泄露了数据库中的敏感信息。
(1)不严格校验 
(2)恶意修改 
(3)成功拼接并执行
2、SQL注入类型简述
·布尔查询
or查询:可查到定义表中的字段值

·union查询
(1)猜字段数 (select 1,2,3.... 或者 order by 1,order by 3... 都是看报错)
(2)如何获取库名,表名,字段名
(3)权限问题

·information_schema(数据库字典)
在mysql5.0版本之后,information_schema这个数据库中保存了MySQL服务器所有数据库的信息。
如数据库名,数据库的表,表栏的数据类型与访问权限等。

information_schema.schemata中的列schema_name记录了所有数据库的名字
information_schema.tables中的列table_schema记录了所有数据库的名字
information_schema.tables中的列table_name记录了所有数据库的表的名字
information_schema.columns中的列table_schema记录了所有数据库的名字
information_schema.columns中的列table_name记录了所有数据库的表的名字
information_schema.columns中的列column_name记录了所有数据库的表的列的名字
MySQL版本5.0 以下没有 information_schema 这个系统表,无法列表名等,只能暴力跑表名。

3、sql常用注入方式
·手动注入
(1)基于错误的注入:判断注入点?单引号?
(2)基于布尔的注入:闭合前面的sql语句,构造or和and的逻辑语句,-- 用来注释后面所有语句
(3)基于union的注入:

·报错注入
·双注入(双查询报错注入,两个select)
原理: 利用group by主键冲突报错获取数据库信息.

·SQL盲注
注入中,在不能通过回显的情况下来判断是否存在SQL注入或获取数据库中信息,可以通过页面返回的不同信息来判断注入的一种方式。盲注分为 布尔盲注(页面是否回显正常数据)、时间盲注(回显页面的时间)

·布尔盲注
普通注入不能直接回显错误信息。
和时间盲注相同的是,每次只判断一个字符。
?id=1' and 1=1 --+回显信息
?id=1' and 1=2 --+不回显

·时间盲注
?id=1' and sleep(3)%23 页面会延时3秒再回显,判断为时间盲注.

·cookie注入
注入位置在http请求的cookie处

·HTTP-Referer注入
注入位置在http请求的Referer处
4、sql注入绕waf
·绕过注释符过滤(#,--+)
·大小写绕过:
or的几种形式(Or,oR,OR,||)
and的几种形式(And,...,&&)  
·双写绕过
?id=1' oorrder by 1 --+
·绕过空格过滤
%0a 新建一行
%0b TAB 键(垂直)
%0c 新的一页
%0d return 功能
%a0 空格
/**/ 代替空格
5、XSS的类型和区别
反射性XSS :通过发送已经构造好的XSS页面引诱受害者点击而触发的一种攻击方式(主动攻击)

存储型XSS :通过向数据库插入恶意的XSS语句,从而将XSS嵌入到网站中,受害者点击存在XSS页面即可触发(被动攻击)

DOM型XSS :有一些站点开发的DOM函数,如注册函数等等,将XSS代码嵌入其中从而触发XSS攻击
使用document.cookie()获取受害者cookie,从而登录网站。
6、可以用XSS搞哪些事情?
·对某些功能点进行伪造,如精心伪造一个登录页面,让用户登录,从而记住账号密码
·窃取cookie
·可以用kali里面的小牛牛来搞事情哈。
7、XSS和CSRF的区别
XSS称为跨站脚本攻击,CSRF称为跨站请求伪造。
XSS 攻击是指攻击者在网站上注入恶意的客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一种攻击方式。攻击者对客户端网页注入的恶意脚本一般包括 JavaScript,有时也会
包含 HTML 和 Flash。有很多种方式进行 XSS 攻击,但它们的共同点为:将一些隐私数据像 cookie、session 发送给攻击者,将受害者重定向到一个由攻击者控制的网站,在受害者的机器上进行一些恶意操作。


CSRF是攻击者在受害者被动的情况下去使用受害者身份去执行某些操作的一种攻击手段。
CSRF攻击攻击原理及过程如下:
用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行
8、有http only怎么获取cookie
如果在cookie中设置了http only属性,那么将不能从 JS脚本中获取到cookie信息,也就是说不能用 document.cookie()来获取cookie。

1.信息泄露,http only是只对指定的cookie做保护,所以前端是会泄露指定保护的cookie

2.配置错误,可能在设置 hettp only的时候只对某个 cookie做了保护,关键的 cookie未保护 

3.如果apache版本较低,使用CVE-2012-0053 ,通过发送超长 cookie,可以获取 http only保护下的cookie
9、SSRF漏洞可以做什么
SSRF称为服务端请求伪造攻击,通常是目标系统对外发起请求的情况下才会造成该攻击生效,
一般是通过某些对外发起请求的参数,攻击者通过SSRF可以对目标系统进行内网打点,
使用file伪协议可以读取系统内的文件,使用dict伪协议可以查看内网存活主机,
使用gopher伪协议反弹shell,配合redis写shell操作。
10、SSRF可以使用哪些协议
file:// 利用file伪协议可以读取系统内存在的文件
dict:// 利用dict伪协议可以对内网主机进行端口探测,横向打点,会返回其banner信息
gopher:// 利用gopherr伪协议可以向服务器发送精心构造的GET或POST请求数据包
利用方式 SSRF进行内网渗透 -> gopher伪协议反弹shell -> redis写webshell
11、PHP文件包含漏洞的函数
include()
require()
include_once()
require_once()
php中 allow_url_include(本地文件包含开关) 和 allow_url_forpen(远程文件包含开关)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210715152023976.png)
12、文件包含如何getshell
上传图片马,通过文件包含的方式getshell

通过登录ssh,将木马写入ssh登录日志getshell

通过恶意访问 HTTP,通过包含web日志进行getshell

php伪协议getshell php://input
13、怎么测试文件上传漏洞绕waf
常规头像、附件、模板修改处存在文件上传点

CMS、框架、富文本编辑器 历史漏洞文件上传

文件上传饶waf
利用中间件文件解析漏洞,IIS php\php3\php4\php5\php7\phtml\phr,apache多文件后缀,apache x0a截断

tomcat后台传war包,IIS PUT写文件,tomcat写文件,apache .htacces

大小写、双写绕过

Windows文件特性、Windows流特性

php低版本 00截断

换行符、filename字段加 + 号、大小写、双引号变单引号、分号后加空格

双文件上传

参数污染

脏数据绕过内容waf绕过

冰蝎等马绕waf

14、只有一个登录页面如何测当前页面的漏洞
1.测试逻辑漏洞点:

密码找回方式,发送邮件、手机号看是否可以拦截

登录时是否为前端认证,通过修改HTTP回显包是否可以绕过

注册功能是否可以覆盖注册 admin,注册页面是否存在二阶注入

验证码是否可以绕过

用户名是否可以进行暴力破解

2.SQL注入漏洞

登录处是否存在报错注入、联合、盲注

注册是否存在SQL注入漏洞

密码找回处是否存在SQL注入

3.JS代码是否存在 JS接口泄露

有些功能点屏蔽掉,但是JS代码可以看到,通过控制台可以触发

通过JSfinder查看是否存在可以利用的接口

通过源码查看是否存在接口泄露

4.目录扫描

探测是否存在未授权访问

探测二级目录、三级目录、robots.txt

5.查看漏洞库是否存在历史漏洞

6.提取登录页面关键字,通过fofaAPI工具去搜,看看有无站点源码泄露去代码审计

15、常见漏洞
·常见逻辑漏洞
横纵向越权
支付漏洞
登录页面密码找回
登录页面用户覆盖
登录是否前端可绕过

·越权漏洞测试方法思路
捕获个人信息页面数据包,查看个人信息是否是通过某一个参数有规律的去控制的
查看Cookie是否为弱加密


·PHP伪协议的利用姿势
php://filter base64读文件
php:://input 写文件
data;,读文件
zip:// getshell
phar:// getshell
16、中间件漏洞
· IIS
1、PUT漏洞
2、短文件名猜解
3、远程代码执行
4、解析漏洞

· Apache
1、解析漏洞
2、目录遍历

· Nginx
1、文件解析
2、目录遍历
3、CRLF注入
4、目录穿越

·Tomcat
1、远程代码执行
2、war后门文件部署

·jBoss
1、反序列化漏洞
2、war后门文件部署

·WebLogic
1、反序列化漏洞
2、SSRF
3、任意文件上传
4、war后门文件部署














评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征__程

多动手,避免老年痴呆,活跃身心

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值