web渗透实战
文章平均质量分 75
本专栏以实战为主,会包括SQL注入,CSRF等基础web漏洞的实战。本专栏适合于有一定基础的伙伴们,但是会提供相关靶场环境!
yuan_boss
网络安全领域知识博主
展开
-
SSRF+Redis未授权getshell
当一个网站具有ssrf漏洞,如果没有一些过滤措施,比如没过滤file协议,gophere协议,dict等协议,就会导致无法访问的内网服务器信息泄露,甚至可以让攻击者拿下内网服务器权限。原创 2024-04-14 16:57:00 · 992 阅读 · 0 评论 -
【PHP代码审计】反序列化漏洞实战
序列化,“将对象的状态信息转换为可以存储或传输的形式的过程”,这种形式大多为字节流、字符串、json 串。在序列化期间内,将对象当前状态写入到临时或永久性的存储区。以后,就可以通过从存储区中读取或还原(反序列化)对象的状态,重新创建该对象。简单的说,序列化就是把一个对象变成可以传输的字符串,可以以特定的格式在进程之间跨平台安全的进行通信。本篇文章将借助Typechov1.0(14.10.10)环境进行代码审计,最终完成对Typecho的利用与getshell。Typecho是一个简单,轻巧的博客程序。原创 2023-09-05 20:00:49 · 1637 阅读 · 3 评论 -
SSRF漏洞实战
服务器会根据用户提交的URL 发送一个HTTP 请求。使用用户指定的URL,Web 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。如果没有对用户提交URL 和远端服务器所返回的信息做合适的验证或过滤,就有可能存在“请求伪造”的缺陷。“请求伪造”,顾名思义,攻击者伪造正常的请求,以达到攻击的目的。如果“请求伪造”发生在服务器端,那这个漏洞就叫做“服务器端请求伪造”,英文名字Server Side Request Forgery,简称SSRF。原创 2023-09-04 20:15:56 · 1346 阅读 · 0 评论 -
Redis未授权访问漏洞实战
本文章主要是针对于vulhub靶场中的Redis 4.x/5.x 主从复制导致的命令执行进行复现,部分复现步骤可以参考vulhub靶场,这里我提供了利用POC工具验证的步骤,相比vulhub更加详细简单。漏洞原理Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。本篇文章需要用到的工具下载地址在复现未授权访问漏洞之前,我们有必要先大致的了解一下Redis是什么,Redis的简单使用与Redis未授权访问漏洞的危害。原创 2023-09-01 18:54:59 · 1261 阅读 · 0 评论 -
失效的访问控制漏洞复现实战
什么是失效的访问控制?失效访问控制有哪些种类?失效访问控制的场景是什么样子的?这篇文章复现漏洞的流程是怎么样的?什么是失效的访问控制? 失效的访问控制,其实就是系统对一些功能点做了访问限制或者权限的限制,但是由于程序开发时因各方面因素导致的缺陷,使这些限制并没有生效,从而产生了失效的访问控制漏洞。失效访问控制有哪些种类?水平越权:在同级别账户中横向移动。垂直越权:普通用户获取管理员权限。失效访问控制的场景是什么样子的?原创 2023-09-01 18:51:23 · 892 阅读 · 0 评论 -
MySQL注入类型的判断方法与原理解析(演示sql语句执行命令)
以下口诀适用于具有数据回显的情况,如果只有页面变化,没有数据回显,就需要使用布尔盲注,如果页面没有任何变化就需要利用时间盲注判断,这里不对布尔盲注与时间盲注进行讲解,只讲述最基础的具有数据回显的情况。在进行SQL注入的时候,我们在确定注入点之后,第一步要做的事情就是判断注入类型,注入类型分为字符型与数字型,确定好注入类型之后,才能继续接下来的sql注入。观察显示情况,从而反推出是否是数字型注入,如果不是数字型注入,那必定是字符型注入了,所以就需要进行下一步判断:究竟是单引号还是双引号的字符。原创 2023-08-24 11:19:02 · 444 阅读 · 1 评论 -
MySQL之万能密码原理分析
可以自己先推测出sql语句,然后利用一些绕过方式与推测的sql语句进行结合尝试。结合之后,可以发现,始终成立,所以可以查出所有数据。尝试万能密码登录:**’ or 1=1 – **通过报错回显可以得知具有sql注入。原创 2023-08-23 21:11:15 · 271 阅读 · 0 评论 -
MySQL之联合注入
通过information_schema库的COLUMNS,查询表字段table_name,值为cms_users的字段信息,并且使用GROUP_CONCAT()函数将所有的字段名打印出来,然后转换为hex,将结果进行解码即可获得字段名。利用order by的特性----他可以指定列的顺序来进行排序,所以可以在order by后面直接加数字,表示按照第几列排序,一旦数字超过了列数,就会报错,从而可以推算出字段数。字符型注入中,哪个符号引发的报错,就代表是哪个符号的字符型注入。比如,这里获得的数据库表名是。原创 2023-08-23 20:59:42 · 135 阅读 · 0 评论 -
MySQL之报错注入
触发报错的方式有很多,具体细节也不尽相同。注意:通过concat()函数拼接的字符串长度只有31位,所以需要借助substr对结果进行截取,然后通过替换截取的下标来获取所有信息。领取地址:链接:https://pan.baidu.com/s/1OeEMML4GRCsbC4LpQK9KoA?cms靶场中具有sql注入的地址:http://localhost/cms/cms/show.php? 在注入点的判断过程中,发现数据库中SQL 语句的报错信息,会显示在页面中,因此可以利用报错信息进行注入。原创 2023-08-23 21:01:09 · 2117 阅读 · 0 评论 -
MySQL之布尔盲注实战(3分钟搞懂盲注思路)
将数据库长度猜出之后,可以借助substr函数对数据库名进行截取,然后利用ascii()函数将截取的数据库名字符串进行编码,然后在126个数字范围内比较(这里建议通过二分查找法来减少比较次数),最后借助回显来判断猜测是否正确,然后将正确的ASCII码转换为对应的字符串即可。1.通过单引号,双引号判断字符类型,再观察是否有回显,发现没有回显,但是页面有其他变化。通过length()函数来盲猜数据库长度,再借助回显来判断猜测是否正确。任务:sqli_labs_08,布尔盲注,获取数据库名。原创 2023-08-23 21:03:34 · 1362 阅读 · 0 评论 -
MySQL之延时注入(3分钟搞懂盲注思路)
任务:sqli_labs第9关,通过延时注入,获取版本号。原创 2023-08-23 21:05:01 · 1389 阅读 · 1 评论 -
MySQL之堆叠注入
可以看到有个表名为users,可以很容易猜测到这是存用户信息的表,所以可以通过sql注入查找这个表的字段名。通过以上操作,可以知道存密码的地方在users表中,而且密码字段名字为password。再次正常访问,即可发现密码已经修改成了654321。注意堆叠注入需要使用分号表示一个sql语句的结束。任务:对38关进行修改密码,删库,恢复环境。38关,堆叠查询,修改密码为654321。通过堆叠注入即可完成修改密码的操作。原创 2023-08-23 21:06:22 · 1247 阅读 · 0 评论 -
DVWA-SQL注入通关
由于源码中使用了mysqli_real_escape_string()函数对我们输入的数据进行转义了,所以无法使用字符型注入了,然而源码中的语句恰好不是字符型注入,而是数字型注入,又因为页面回显,所以可以使用联合注入获取数据库名。users表的字段:user_id,first_name,last_name,user,password,avatar,last_login,failed_login。通过单引号,双引号依次尝试,发现单引号会引发报错,而双引号不会报错,所以是使用单引号的字符串类型。原创 2023-08-23 21:08:20 · 1466 阅读 · 0 评论 -
宽字节注入
我们还需要MySQL扫描顺序:由于MySQL设置的编码是gbk,所以扫描的时候会根据GBK的范围与双字节规则来扫描数据,如果扫描的数据范围不在GBK的编码范围内,就会从ascii码中查找。根据GBK范围,我们就可以通过自定义首字节的方式,只需要确保首字节在81-FE之间,就能让mysql通过gbk编码识别,然后和。这种语法是错误的,所以在查询条件中是不能通过宽字来躲避转义的,我们只能将要查询的数据库的名字转为。接下来就是通过order by判断字段数,可以判断出有3个字段,有了字段数,就可以进行联合注入。原创 2023-08-24 22:03:41 · 284 阅读 · 0 评论 -
HTTP 头部注入
发现Cookie中的值是url编码,所以需要放到Decoder模块进行解码,解码之后发现是Base64,就需要再Base64解码,得到正常值之后开始尝试sql注入,然后将注入语句进行Base64编码,放入Cookie值中即可。在重发器中判断注入类型,经过多次尝试,可以确定注入类型是字符型,并且是单引号。所以这个base64注入其实和普通注入方式是一样的,无非就是多了个编码解码的步骤。注释后面的sql是无效的,所以采用右边闭合的方式,将后面的。登录之后,刷新页面进行抓包,然后发送到重发器。原创 2023-08-24 22:32:13 · 51 阅读 · 0 评论 -
sql 注入读写文件
获取到用户为root,主机为localhost,然后将这两个信息作为条件,接下来查看是否有文件读写权限。与当前mysql用户具有File_priv权限之外,还要确保当前系统用户具有访问hosts文件的权限。根据结果可知,当前mysql用户为root,主机为名为localhost。要想复现sql注入的读写,首先mysql就需要满足下面的条件。想要读取某个文件,除了需要需要关闭mysql中的安全选项。本次实战,以sqli_labs靶场的第1关为例。发现读取成功,看到了hosts文件的内容。通过联合注入的方式,原创 2023-08-24 22:34:00 · 380 阅读 · 0 评论 -
sqlmap基础实战
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zVgfIczH-1692887656051)(https://gitee.com/yuan_boss/yuanboss-pic-bed/raw/master/img2/image-20230824172345144.png)]领取地址:链接:https://pan.baidu.com/s/1OeEMML4GRCsbC4LpQK9KoA?在kali中创建post.txt,然后将这个包放入post.txt中。查找当前网站的数据库。原创 2023-08-24 22:35:30 · 1314 阅读 · 0 评论 -
XSS盲打实战与Cookie欺骗
设置好之后,直接访问admin的首页http://localhost/cms/admin/index.php,可以直接到达后台,从而达到了cookie欺骗的目的。领取地址:链接:https://pan.baidu.com/s/1OeEMML4GRCsbC4LpQK9KoA?本教程实战简单的xss注入,并利用存储型xss注入,获取cms靶场的后台管理员的cookie,从而实现免密登录。利用xsspt平台的xss注入,获取管理员cookie:https://xss.pt/原创 2023-08-27 22:59:59 · 1284 阅读 · 0 评论 -
xss challenge靶场挑战(1-13关)
尝试,发现JS代码完整显示在页面上了,说明后台肯定把我们的代码变为了html实体,导致无法被浏览器解析,因此就不能通过写脚本的方式来攻击了,只能从其他层面思考,使用事件函数,借助原有的input标签,把事件函数加入其中即可,但是要注意闭合问题,所以需要通过单引号双引号的尝试,判断出是用什么引号闭合的,由于源代码中。这个对事件函数的on进行过滤,所以只能使用伪协议了,但是由于script也被过滤了,所以需要使用ASCII HEX对伪协议的一个字母进行编码,从而绕过他的过滤规则。原创 2023-08-27 23:01:47 · 2390 阅读 · 0 评论 -
CSRF基本概述
跨站请求伪造(Cross Site Request Forgery,CSRF)是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程序上执行非本意操作的攻击,攻击的重点在于更改状态的请求,而不是盗取数据,因为攻击者无法查看伪造请求的响应。CSRF 的目标是更改用户账户的状态,攻击者利用CSRF 发送的请求都是更改状态的请求,比如,转账、更改密码,购买商品等等。CSRF 会借用浏览器中与站点关联的所有身份凭据,例如用户的会话Cookie,IP 地址,Windows 域凭据等。原创 2023-08-28 19:41:57 · 49 阅读 · 0 评论 -
CSRF实战案例
CSRF中文名叫做跨站请求伪造,很容易知道这是一个跨站攻击的漏洞,也就是说我们可以让受害者在我们构造的恶意站点执行我们构造的恶意请求,从而请求到另一个网站,请求另一个网站的时候受害者会携带自己的cookie信息,进而借助受害者的cookie来执行我们的恶意请求。。在以下案例中,我会实现一个基本的CSRF攻击。我将会构造一个恶意的游戏界面,其中图片链接里面内嵌了我们的恶意请求,让受害者点击,点击之后将会携带受害者的cookie并且向正常站点发起请求,从而完成攻击。那么我们应该如何构造恶意请求呢?原创 2023-08-28 18:52:56 · 1207 阅读 · 0 评论 -
CSRF漏洞验证实战
本章节的CSRF漏洞验证实战是基于DVWA靶场的低级别CSRF进行验证的。借助BP拦截的dvwa靶场请求,构造CSRF的poc(这个poc是用于修改密码的)在不退出dvwa的前提下,执行poc用修改后的密码登录dvwa靶场登录成功,验证存在CSRF漏洞。原创 2023-08-28 18:54:22 · 1182 阅读 · 0 评论 -
CSRF+XSS组合拳实战
由于CSRF利用条件比较苛刻,需要受害者点击恶意请求。因此我们可需要借助XSS来扩大危害,借用XSS漏洞执行JS代码,让JS直接发起请求,从而不需要让受害者点击恶意请求了。在实战中,如果我们发现了XSS存储型漏洞,我们也可以尝试寻找CSRF漏洞,进而扩大危害。原创 2023-08-28 18:55:20 · 1401 阅读 · 2 评论 -
CSRF防御
通过前面的一些实战案例,我们可以知道CSRF的危害是很大的,虽然利用添加比较苛刻,但是一旦利用,后果不堪设想。如果黑客利用管理员的身份进行一些操作,比如添加用户,添加权限,删除用户等。可想而知,这个影响是巨大的。原创 2023-08-28 19:42:51 · 64 阅读 · 0 评论 -
WebShell-大马实战
webshell-大马下载地址:https://gitee.com/yuan_boss/labs.git。注意,要复现ASPX文件的大马,需要.NET环境,所以在搭建IIS服务器的时候,我们需要勾上上面的那些。里面有些大马的连接密码可以修改,如果不知道密码,可以自行查看源码。使用资料中的大马:AspxSpy2014Final.aspx。登录之后,就可以看到功能界面了,这里演示cmd操作。上传asp大马,将大马放到IIS服务器的根目录。以下是jshell.jsp的大马。里面有许多功能,可以研究研究。原创 2023-08-29 17:36:43 · 1516 阅读 · 0 评论 -
文件包含漏洞实战
可以看到,我们成功获取到了hosts文件,但是这并不能证明是文件包含漏洞,因为这仅仅是把hosts文件读取出来了,最多能确定的是文件读取漏洞,所以我们可以写一个把phpinfo.php放到www的一个目录中,我们尝试访问phpinfo.php,看看能否解析成功,解析成功了就说明是文件包含漏洞。我们仅仅可以使用文件包含漏洞,这个时候就需要考虑到php的一些封装协议了,利用封装协议,可以读取PHP文件源码,可以执行PHP命令。由上面的结果可知,我们利用php://input成功执行了php的命令。原创 2023-08-31 21:01:41 · 1215 阅读 · 0 评论