host碰撞
隐藏资产探测很多时候访问目标资产IP响应多为:401、403、404、500,但是用域名请求却能返回正常的业务系统(禁止IP直接访问),因为这大多数都是需要绑定host才能正常请求访问的 (目前互联网公司基本的做法)(域名删除了A记录,但是反代的配置未更新),那么我们就可以通过收集到的目标的 域名 和 目标资产 的IP段组合起来,以 IP段+域名 的形式进行捆绑碰撞,就能发现很多有意思的东西
DNS解析过程1.在浏览器内部中查看是否有缓存2.在本机hosts文件中查看是否有映射关系3.本地DNS缓存(ipconfig /displaydns )4.本地DNS服务器5.根域服务器
原理带host的请求直接到反代服务器的ip,反代服务器上面的对应host配置如果还在,就会把请求转发到后面即内网中的对应host业务服务器上,导致网站的域名删除了A记录的情况下也能访问/直接访问内网业务系统
脚本原理在发送http请求的时候,对域名和IP列表进行配对,然后遍历发送请求 (就相当于修改了本地的hosts文件一样),并把相应的title和响应包大小拿回 来做对比,即可快速发现一些 ...
Cobalt Strike学习笔记
Cobalt strike的安装与使用Cobalt Strike 要求 Oracle Java 1.8,Oracle Java 11, 或 OpenJDK 11
安装Windows客户端的安装
安装windows10虚拟机(防止中毒,也可直接安装在本机,方便很多) :配java环境 安装cs服务端
管理员身份运行powshell:
123./Keytool.exe -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias cobaltstrike -dname "CN=Major Cobalt Strike,OU=AdvancedPenTesting,O=cobaltstrike, L=Somewhere, S=Cyberspace, C=Earth".\teamserver.bat 192.168.245.2 123456 //先ipconfig看一下本机ip
linux服务端
Cobalt Strike 团队服务器必须 ...
sql注入总结
常用闭合方式判断判断闭合方式,目前掌握的闭合方式为单引号’’,单引号括号(’’),双引号””,双引号括号(“”),都不行的话试试宽字节注入
当单引号或者双引号出现回显或者语法错误时,如何判断是否带括号呢?
抄袭一波大神的判断方式
遇到SQL注入第一步判断闭合:首先尝试:
?id=1’?id=1”
1如果都报错,则为整形闭合。
2如果单引号报错,双引号不报错。然后尝试
?id=1’ –+?id=1’ #
无报错则单引号闭合。报错则单引号加括号。
3如果单引号不报错,双引号报错。然后尝试
?id=1” –+?id=1” #
无报错则双引号闭合。报错则双引号加括号。
输入(其中id=1,1是正确的数据库存在的值),正常回显
?id=1 and true –+或者?id=true and true –+
输入,错误回显
?id=1 and false –+或者?id=true and false –+
那么就是整形闭合
输入(其中id=1,1是正确的数据库存在的值),正常回显 ...
Git操作
创建版本库版本库又名仓库repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
创建一个版本库非常简单,首先选择一个合适的地方创建一个空目录:
12mkdir learngitcd learngit
然后通过git init命令把这个目录变成Git可以管理的仓库
把一个文件放到Git仓库只需要两步第一步,用命令git add告诉Git,把文件添加到仓库:
1git add readme.txt
第二步,用命令git commit告诉Git,把文件提交到仓库:
12git commit -m "wrote a readme file"// -m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
git status命令可以时刻掌握仓库 ...
文件上传
.htaccess.htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
需要注意,.htaccess文件的作用域为其所在目录与其所有的子目录,若是子目录也存在.htaccess文件,则会覆盖父目录的.htaccess效果。
注意:**.htaccess 中有 # 单行注释符,且支持 \ 拼接上下两行**
(1).htaccess参数
常见配法有以下几种:
1234567AddHandler php5-script .jpg ...
服务端模板注入(SSTI)
魔术函数这里介绍几个常见的魔术函数,有助于后续的理解
__dict__
类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类的__dict__里的对象的__dict__中存储了一些self.xxx的一些东西内置的数据类型没有__dict__属性每个类有自己的__dict__属性,就算存在继承关系,父类的__dict__ 并不会影响子类的__dict__对象也有自己的__dict__属性, 存储self.xxx 信息,父子类对象公用__dict__
__globals__
该属性是函数特有的属性,记录当前文件全局变量的值,如果某个文件调用了os、sys等库,但我们只能访问该文件某个函数或者某个对象,那么我们就可以利用globals属性访问全局的变量。该属性保存的是函数全局变量的字典引用。
__getattribute__()
实例、类、函数都具有的__getattribute__魔术方法。事实上,在实例化的对象进行.操作的时候(形如:a.xxx/a.xxx()),都会自动去调用__getattribute__方法。因此我们同样可以直接通过这个方法来获取到 ...
文件包含
PHP带有很多内置URL风格的封装协议,可用于类似fopen()、copy()、file_exists() 和 filesize()的文件系统函数。当遇到文件包含时,我们可以这个特性来完成我们需要的指令。
常见文件包含函数include、require、include_once、require_once、highlight_file 、show_source 、readfile 、file_get_contents 、fopen 、file.
123456789includeinclude_once:遇到重复文件,只包含一次requirerequire_once: 遇到重复文件,只包含一次highlight_file、show_source、readfile、file_get_contents、fopen、file (读取文件)include和require区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。而include_once(),require_once()这两个函数,与前 ...
linux提权
内核漏洞提权Linux系统处于源码开放状态,多年来被各国的安全从业者发现一系列漏洞,利用其中的一部分漏洞可以直接获取到系统的最高权限。利用内核漏洞进行提权一般包括三个环节:首先,对目标系统进行信息收集,获取到系统内核信息以及版本信息;而后,根据内核版本获取其对应的漏洞以及EXP;最后,使用找到的EXP对目标系统发起攻击,完成提权操作。本文以一个经典的Linux内核提权漏洞-“Dirty COW”来做演示,其信息如下所示:
漏洞信息:CVE-2016-5195漏洞(Dirty COW,脏牛)
影响范围:Linux 内核2.6.22 – 3.9 (x86/x64)
漏洞EXP:https://github.com/FireFart/dirtycow
该漏洞的利用方式如下:
(1)信息收集:通过 uname -a 命令查看内核版本,可见其存在本漏洞
(2)获取EXP:通过上文的链接将exp下载到本地,使用 gcc -pthread dirty.c -o dirty -lcrypt 命令对dirty.c进行编译,生成一个名为dirty的可执行文件。此时查看用户信息,显示当前用户为普 ...
python脚本(持续更新)
python url编码12import urllib.parseprint(urllib.parse.quote("<>?"))
这种和工具都不能对数字字母进行url编码,只有用burp自带的模块才可以
两位一组截取数据123456m = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"num = ""for i in range(0, len(m), 2): hex = m[i: i + 2] # hex= m [i] + m [i+1] num += chr(int(hex, 16) - 128)print(num)
1`Hi, FreshDog! The flag is: hjzcydjzbjdcjkzkcugisdchjyjsbdfr`
base64文件隐写脚本12 ...