![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
渗透测试
文章平均质量分 75
介绍渗透测试的知识
弈-剑
本科就读于中山大学智能工程学院,专业是交通工程,兴趣是网络安全,会分享一些自己的研究成果,欢迎大家关注我的博客。
展开
-
内网渗透
Webshell:拥有网站代码的执行权限,例如一句话木马就是一个Webshell一、MySql导出函数:将数据库的内容导出到某个文件1、into outfile可以导出多行,会对导出内容中的\n等特殊字符进行转义,并且在文件内容的末尾增加一个新行,导出二进制文件时会出错2、into dumpfile只能导出一行,对文件内容是原意写入,未做任何转移和增加,可以导出二进制文件,可以以十六进制写入3、load_file二、获取绝对路径:1、报错获取绝对路径2、@@datadir获取数据存储的原创 2021-04-03 20:14:30 · 1052 阅读 · 2 评论 -
支付漏洞
一、快捷支付原理商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知浏览器跳转:基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了页面,并未等待银行跳转到支付结果页面,那么商户网站就收不到支付结果的通知,导致支付结果难以处理。而且浏览器端数据很容易被篡改而降低安全性服务器端异步通知:该方式是支付公司服务器后台,直接向用户指定的异步通知URL发送参数,采用POST或GET方式。商户网站接收异部参数的URL对应的程序中,要对支付公司返回的支付结果进行签名验证原创 2021-03-30 11:07:46 · 1069 阅读 · 0 评论 -
越权漏洞
一、越权漏洞简介越权漏洞是一种很常见的逻辑安全漏洞,是由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致修改相关参数就可以拥有了其他账户的增、删、查、改功能,从而导致越权漏洞。目前存在着两种越权操作类型:横向越权操作(水平越权)和纵向越权操作(垂直越权)。水平越权:相同权限下不同的用户可以互相访问。水平越权的测试方法,主要是看能否通过用户A的操作影响到用户B。垂直越权:向上操作越权:使用权限低的用户可以访问到权限较高的用户,或者操作高权限的东西。向下操作越权:高原创 2021-03-29 16:06:28 · 907 阅读 · 0 评论 -
命令执行漏洞
一、命令执行漏洞原理用户输入的数据被当做系统命令进行执行# 此一句话木马的本质是命令执行漏洞# whoami显示登录名# net user查看用户# shutdown -t 0 -s关机<?php system('whoami');?> 代码执行:用户输入的数据被当作后端代码执行命令执行:用户输入的数据被当作系统命令执行因为代码执行可以调用命令执行的函数,所以大部分代码执行都可以调用系统命令,菜刀的终端操作也是利用了命令执行的函数,但是命令执行却不能够利用代码执行,当然,原创 2021-03-28 22:17:20 · 599 阅读 · 0 评论 -
PHP加密
Zend GuardZend Guard是目前市面上最成熟的PHP源码加密产品,只要PHP加载了这个第三方加密插件,那么就可以直接运行加密后的源码。Zend Guard加密会在开头写Zend,遇到了可以尝试在线解密。DEPHP解密当然,也有SeayDzend这类批量解密工具。...原创 2021-03-28 22:16:29 · 147 阅读 · 0 评论 -
unserialize反序列化漏洞
一、序列化序列化(serialize)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区,之后可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。简单地说,就是将状态信息保存为字符串。例如,将PHP中的对象、类、数组、变量、匿名函数等转化为字符串,方便保存到数据库或者文件中。反序列化: 序列化是将对象的状态信息转为字符串储存起来,反序列化就是将字符串转化为状态信息,即从新将状态信息拿出来使用。...原创 2021-03-27 13:17:25 · 713 阅读 · 0 评论 -
变量覆盖漏洞
一、变量覆盖变量覆盖指的是可以用我们的传参值替换程序原有的变量值经常导致变量覆盖漏洞的场景:(1)$$使用不当(2)extract()函数使用不当(3)parse_str()函数使用不当(4)import_request_variables()使用不当(5)开启了全局变量注册等变量覆盖漏洞有的时候可以让我们直接获取Webshell,拿到服务器的权限一个大型项目的开发,不可能由一个人完成,信息之间的不对称,可能导致变量覆盖漏洞二、函数解析1、extract()extract()函数:从原创 2021-03-26 12:04:30 · 600 阅读 · 0 评论 -
文件包含漏洞
一、文件包含漏洞简介相同代码重复出现在不同文件中,造成代码冗余,所以出现了文件包含函数,其可以调用需要使用的代码,被包含的文件会被当做PHP代码执行,忽略后缀本身,使代码更为高效。攻击者利用包含的特性,且应用本身对文件(包含)控制不严格,最终造成攻击者进行任意文件包含。注意,包含的文件会被当做脚本文件来解析。简单地说,文件包含并不属于漏洞,但是,由于对包含进来的文件不可控,导致了文件包含漏洞的产生,即如果包含文件能被人为控制,就属于漏洞。文件包含分为本地文件包含(LFI)和远程文件包含(RFI)。原创 2021-03-24 17:18:36 · 355 阅读 · 0 评论 -
代码执行漏洞
一、代码执行漏洞原理代码执行漏洞原理:用户输入的数据被当做后端代码执行#一句话木马的本质就是一个代码执行漏洞#用户输入的数据被当做代码进行执行。<?php @eval($_REQUEST[8]);?>RCE(Remote Command/Code Execute):远程命令执行或者远程代码执行,RCE的定义比较广,只要渗透的最终情况可以实现执行命令或者代码都属于RCE,例如代码执行、文件包含、反序列化、命令执行,甚至是写文件Getshell都可以属于RCE二、代码执行函数解析P原创 2021-03-22 16:06:55 · 313 阅读 · 0 评论 -
XXE-实体注入
一、XXE简介XXE:XML External Entity,即外部实体,从安全角度理解成XML External Entity attack XML,外部实体注入攻击XXE-XML实体注入:用户输入的数据被当做XML代码执行XML:XML,可扩展标记语言(EXtensible Markup Language)XML,是一种标记语言,类似HTMLXML,设计宗旨是传输数据,而非显示数据XML,标签没有被预定义,需要自行定义标签XML,被设计为具有自我描述性。XML,W3C的推荐标准XML原创 2021-03-17 09:39:21 · 211 阅读 · 0 评论 -
SSRF-服务器端请求伪造
一、SSRF简介服务器端请求伪造(SSRF)是指攻击者能够从易受攻击的Web应用程序发送精心设计的请求,对其他网站进行攻击,简单地说,就是利用一个可发起网络请求的服务当作跳板来攻击其他服务。攻击者A利用服务器B,访问服务器C。一种简单的方法 :攻击者要求服务器为其访问URL#在这里,example.com从其服务器再去访问http://google.com#假设谷歌的内网有许多内网服务器,我们就可以访问其内网了,可以探测内网的信息GET /?url=http://google.com/ HTT原创 2021-03-15 15:15:18 · 341 阅读 · 0 评论 -
验证码绕过与密码找回漏洞-案例
验证码可以重复使用验证码空值绕过验证码干扰过低,轻松使用脚本识别验证码会在HTML页面输出验证码可控制图片验证码,类型太少,容易识别多次登录后才出现验证码绕过-基于session多次登录后才出现验证码绕过-基于IP验证码发送后由前端返回验证码无次数限制可爆破验证码可控直接修改密码页面*越权漏洞1越权漏洞2...原创 2021-03-15 12:05:10 · 289 阅读 · 1 评论 -
验证码绕过与密码找回漏洞
一、验证码简介验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。验证码可以防止:(1)恶意破解密码(2)刷票(3)论坛灌水(使用Burp不断发送数据包,替换UA、Accept等无关紧要的数据为Null payloads,甚至自己添加一个数据)(4)有效防止黑客对某一个特定注册用户用原创 2021-03-15 11:59:39 · 2074 阅读 · 0 评论 -
文件上传解析漏洞
一、前端验证绕过检测恶意代码依靠后端检测,前端检测(JS)相当于没有检测(1)修改浏览器设置,直接禁用JS(2)使用Burp抓返回包,删除JS检测代码(3)前端代码只能在浏览器执行,先将恶意代码更改为可执行后缀,使用Burp抓包,更改上传文件后缀名二、Content-Type方式绕过白名单:只允许白名单上的内容。例如只允许上传jpeg、png、gif后缀的文件,后端会检测文件的类型在文件上传解析漏洞中,后缀名很重要,后端可能会更改前缀名,但后缀名一般不会更改。先上传一个JPG文件,使用Bur原创 2021-03-13 15:52:02 · 1133 阅读 · 0 评论 -
跨站请求伪造-CSRF
一、CSRF简介跨站请求伪造(Cross-Site Request Forgery),缩写为CSRF或者XSRF,也被称为“One Click Attack”或者“Session Riding”,是一种对网站的恶意利用。CSRF与XSS感觉上相似,但却是完全不一样的攻击方法,XSS利用站点内的信任用户,而CSRF则将自己伪装成来自受信任用户的请求,从而利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行,因此对其进行防范的资源也较少,难以防范,被认为比XSS更具危险性。简单地说,CSRF漏洞的成原创 2021-03-11 09:53:03 · 412 阅读 · 1 评论 -
Dom Based XSS
一、Dom Based XSS简介Dom Based XSS漏洞是基于文档对象模型(Document Object Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分,简单地说,DOM是一个可以通过JS操纵浏览器和网页显示内容的接口。DOM中有很多对象,其中一些是用户可以操纵的,如URL ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖原创 2021-03-08 22:05:38 · 1270 阅读 · 0 评论 -
存储型XSS
一、XSS简介XSS:用户输入的数据被当做代码执行#JS代码被触发的三种情况<script></script><a herf=javascript:alert(1)></a><img src=1 onerror=alert(1) />XSS的三种类型:(1)反射型(2)存储型(3)Dom型二、同源策略浏览器的同源策略,限制了不同源的Js,对当前页面的资源和属性的权限。同源策略保护了a.com域名下的资源不被来自其他网页的脚本原创 2021-03-07 17:31:45 · 2588 阅读 · 0 评论 -
XSS原理
一、XSS原理前端基础:HTML:网页的框架CSS:网页的化妆师JavaScript:丰富网页功能的脚本SQL注入:用户输入的数据被当做代码执行XSS(前端代码注入):用户输入的数据被当做前端代码执行。 本质是传参被拼接进HTML页面,并且被执行。复制网页:不能直接复制源码,类似于图片之类的数据无法复制,可以Ctrl+S保存,得到HTML源码和一个文件夹,文件夹包含图片与JS脚本等内容,将两个文件放入自己搭建的站点,既可复制网页。钓鱼网页也是类似的做法,将网页保存下来,进行修改,记住,前端代码原创 2021-03-06 18:17:47 · 1288 阅读 · 0 评论 -
Oracle-报错注入
一、Oracle数据库简介Oracle数据库系统,是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是一种关系数据库,数据库体量较大,一般与jsp网站联合。常见的数据库:MySQL、MSSQL、Access、OracleOracle使用免费,但如果使用中的数据库遇到了问题,例如数据丢失、数据库打不开等等,想要解决问题,就必须寻找Oracle官方的服务,而服务价格不菲,而这就是Oracle的盈利方式。Oracle比MySQL、MSSQL、Access更为先进,对大数据的处理能力原创 2021-03-05 19:14:41 · 511 阅读 · 1 评论 -
MSSQL-反弹注入
一、MSSQL反弹注入的使用场景MSSQL其实就是SQLServer。MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,造就了新颖独特的攻击思路。在注入攻击中常常遇到这些问题:(1)明明是SQL的注入点却无法注入(2)注入工具猜解的速度异常缓慢(3)错误提示信息关闭(4)无法返回注入结果为了解决上述问题,比较好的方法是使用反弹注入技术。反弹注入:将查询到的数据插入到其他数据库,可以复制大量的数据。二、快速搭建一个MSSQL环境MSSQ原创 2021-03-04 21:27:59 · 354 阅读 · 2 评论 -
MySQL-DNS注入
一、DNS注入的原理在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起请求,这个时候就可以通过DNS请求把想获得的数据外带出来通过子查询,将内容拼接到域名内,让load_file()去访问共享文件,访问的域名被记录,将盲注变为显错注入即读取远程共享文件,拼接出函数,进行查询,再拼接到域名中,访问时将访问服务器,记录后查看日志对于sql盲注,常见的方法是使用二分法一个个猜,但是这样的方法很麻烦,还很容易因为数据请求频繁导致被禁所以可以将查询到的数据发送给一个URL,利用DNS解析产生的记录日志原创 2021-03-03 16:21:16 · 281 阅读 · 1 评论 -
Access-偏移注入
在SQL注入的时候会遇到一些无法查询列名的问题,例如系统自带数据库的权限不够而无法访问系统自带库,例如Access根本没有系统自带库,需要强行猜解表名在猜到表名无法猜到字段名的情况下,可以使用偏移注入来查询表里面的数据像sqlmap之类的工具实际上是爆破字段的名字,但是如果字段名比较奇怪,sqlmap就无能为力了偏移注入终比较常用的方法是移位溢注移位溢注#假设admin表里面有id、username、password三个字段#admin.*代表了admin表里所有的字段select * fro原创 2021-03-02 11:58:38 · 294 阅读 · 0 评论 -
Access-Cookie注入
一、Cookie注入简介Cookie是代表身份的一串字符,网站根据Cookie来识别身份,如果获取了管理员的Cookie,就可以无需密码直接登陆管理员账号。Cookie注入原理:在动态脚本语言中存在超全局变量可以获取多种传参方式(大多数),开发者考虑到多种接受参数,在解释参数的时候也是用多种解释传参的方法。例如,PHP中的$_REQUEST变量可以获取POST、GET、COOKIE传参常见的数据库有Access、Mysql、mssql(SqlServer)、OracleCookie注入在老一点的原创 2021-03-01 21:07:10 · 207 阅读 · 0 评论 -
SQL注入与正则表达式
SQL注入:SQL注入攻击的本质,就是把用户输入的数据当做代码执行。这里有两个关键的条件:1、用户能够控制输入2、原本程序要执行的代码,拼接了用户输入的数据然后进行执行1998年一名叫做rfp的黑客发表了一篇关于SQL注入的文章首先查看登录处理代码:<meta charset='utf-8'><?php@$username = $_REQUEST['username']; #用户名@$password = $_REQUEST['password']; #密码$conn原创 2021-02-17 22:22:44 · 4509 阅读 · 2 评论 -
SQL注入的原理
一、SQL注入的本质注入攻击的本质,是把用户输入的数据当做代码执行。SQL:结构化查询语言,即操作数据库的代码注入:把用户输入的数据当做代码执行SQL注入的条件:第一个是用户能够控制输入。第二个是原本程序要执行的代码,拼接了用户输入的数据然后进行执行SQL注入的应用场景:任何和数据库交互的传参(任何传参点)想要了解更详细一点,可以看一下这篇博客:SQl注入与正则表达式二、显错注入1、判断是否存在注入点http://59.1.1.1/?id=1#?代表GET传参,传参值为1(1)原创 2021-02-24 17:37:15 · 2811 阅读 · 1 评论 -
信息搜集进阶
一、Nmap扫描之王,最富盛名的扫描工具。注意,Nmap的扫描结果可能会有遗漏或者不准确,比如服务出错,一般情况只扫描默认的端口。nmap 192.168.1.3#在cmd中输入,即可得到该IP开启的端口以及对应状态、服务。nmap 192.168.1.3/24#24是子网掩码的意思,查询整个C段nmap 192.168.1.1-20#查询192.168.1.1-192.168.1.20nmap -p 80 192.168.1.3#只探测80端口#80和443都是web服务端口.原创 2021-02-19 13:57:11 · 129 阅读 · 0 评论 -
信息搜集
一、信息搜集的意义知己知彼,百战不殆。安全的高度,取决于最薄弱的地方,木桶中最短的那一块板。信息搜集,就是搜集薄弱资产。二、信息搜集方向1、whois域名注册时留下的信息,比如留下管理员的名字、电话号码、邮箱。域名注册人可能就是网站管理员,可以尝试对其进行社工、套路,查询是不是注册了其他域名,以扩大攻击范围。站长之家whois反查查找隐藏的联系方式:whois.com搜索联系方式,判断从事方向贴吧...原创 2021-02-18 20:19:01 · 1282 阅读 · 4 评论 -
宽字节注入
一、魔术引号有攻击必有防御魔术引号属于SQL注入的防御,是PHP的一种防御手段,使用反斜线将单引号、双引号以及反斜线本身进行转义单引号和双引号内的一切都是字符串,如果我们输入的东西不能闭合掉单引号和双引号,我们的输入就不会当作代码执行,就无法产生SQL注入' -> \'" -> \"\ -> \\魔术引号防护很常见,虽然魔术引号在PHP5.3.0后就被废除,5.4.0后就被移除,但是一般的CMS全部都有使用,有专门的魔术引号函数魔术引号在低版本中默认开启,打开php.in原创 2021-02-28 23:02:25 · 538 阅读 · 0 评论 -
盲注
一、盲注简介注入攻击的本质,是把用户输入的数据当做代码执行。注入攻击的两个关键条件:第一个是用户能够控制输入第二个是原本程序要执行的代码,拼接了用户输入的数据盲注,就是在服务器没有错误回显的时候完成的注入攻击。服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”。与盲注相对应的是显错注入,分别为:union select 联合查询注入updatexml 报错注入盲注也分为两种:(1)布尔盲注:只会根据注入信息返回True和False,没有了之前的报错信息(2)时间盲注:界面返原创 2021-02-28 09:59:27 · 4599 阅读 · 0 评论 -
POST注入与HEAD注入
一、POST注入POST注入就是使用POST进行传参的注入,本质上和GET类型的没什么区别。SQL注入的原理渗透测试常用工具#最经典的POST注入——万能密码$password=' or 1=1 -- qwe$password=' or 1=1##POST注入与GET注入差别不大#POST注入比GET注入多得多#查看字段数$password=' or 1=1 order by 3 -- qwe#判断回显点$password=' union select 1,2,3 -- qwe原创 2021-02-27 12:01:16 · 940 阅读 · 7 评论 -
渗透测试常用工具
一、环境的安装1、PythonPython(2.7.16)下载地址下载好文件之后,直接安装即可2、JavaJava下载地址3、环境变量环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如果定义了某个环境变量的路径,那么当在windows系统的变量中寻找不到的时候,就会去添加的路径中寻找对应的东西。例如,将桌面(C:\Users\ASUS\Desktop)加入环境变量,就可以在任意路径的cmd窗口打开桌面的文件win10系统环境变量怎么设置可以将Python和Java添加入环原创 2021-02-25 16:03:03 · 605 阅读 · 0 评论