
Web安全实战记录
文章平均质量分 94
本专栏用于记录和分享渗透测试的重新修炼,力求详尽。
【严正声明】:仅作学习,不做他用!
路人harutoo
信息安全学习者
展开
-
10_上传漏洞_代码审计&文件命名
许多文件上传的题型都涉及代码审计,个人认为这类题型有一定复杂性,同时这也是我不太擅长的点,因此本章节将结合先前博文中介绍过的上传漏洞,先总结出一些解题过关时需要注意的要点,再通过upload-labs-pass 19进行案例演示。就像去吃火锅调酱料一样,为了调配出自己喜欢的口味,顾客会将多种酱料混合。对于文件上传检测也是这样,往往过滤函数检查的位置不止一处,因此我们在修改数据包进行绕过操作时,需要注意修改的位置有时不止一处,尤其是对MIME类型的检测不可忽略,代码案例如下所示:notice2:“黑名单”思原创 2022-07-04 23:11:42 · 1001 阅读 · 3 评论 -
09_上传漏洞_文件包含&二次渲染&代码逻辑漏洞
【本篇博客不对文件包含展开】正如前篇博客所述,白名单是一种极好的过滤方式,虽然php、asp代码中常常可以用00截断的方式绕过白名单过滤,但在服务器高版本的情况下,截断技术也会失效。那么这种情况下是否就没有思路进行渗透了呢?并不是,一种情况是出现了文件包含漏洞,也就是说这里上传的文件是合法的,但是其中含有恶意代码。存在文件包含漏洞漏洞前提下,合法文件可以通过某种方式作为脚本执行。当然本篇博客的内容重点不在于文件包含,安排这个板块的目的在于强调:漏洞的存在不是互斥的。因此,实战中对于漏洞的利用需要考虑“打组合原创 2022-06-26 12:11:27 · 1387 阅读 · 0 评论 -
08_上传漏洞_初识_前后端绕过&靶场案例
许多网站会设计用户上传功能,例如大多数网站存在会员机制,会员可以上传图片作为自己的头像。这样的上传功能中往往会做限制(如只允许上传图片格式),试想,某些攻击者如果绕过了上传限制,通过上传功能将恶意脚本(远程控制等)发送至服务器,那么服务器资源将会遭受威胁。可见,文件上传本身是一个常见功能,只有在设计不得当时才会是一个漏洞。因此,当系统存在文件上传功能时,就有一定的可能性存在上传漏洞。上传漏洞和先前介绍的SQL注入漏洞一样,都属于高危漏洞。绕过上传限制后,攻击者可以上传后门脚本进而获取服务器权限,内网权限等,原创 2022-06-19 12:38:29 · 1305 阅读 · 0 评论 -
07_SQL注入_堆叠注入&绕过注入
谈及堆叠,顾名思义:就是多条语句一同执行。实际开发中,部分数据库支持多条SQL语句同时执行,在这样的场景下进行SQL注入,我们是否能够在payload中构造多条可执行语句呢?当然可以。SQL语句中“;”代表了一条语句的结束,在写入payload时只需要用“;”分割多条语句,在限制不到位的情况下就可以自定义执行多条语句,案例如下:假设数据库中存在表users如果恶意用户将参数人为构造成:垓参数与SQL语句进行拼接,就会变为:一旦恶意代码被执行,users表就会被删除通过上述案例,不难发现,对比与联合查询un原创 2022-06-03 17:54:58 · 1578 阅读 · 0 评论 -
06_SQL注入_二次注入&加密解密
06_SQL注入_加密注入&二次注入1.加密注入SQL注入的思路是用户用自定义语句和原本的SQL语句拼接,但有时开发者会对获取到的数据进行加密,那么对于渗透测试者而言如果想要在这样的情况下进行操作,则需要将自己的注入语句进行相同的加密处理后与原本的语句进行拼接。这种类型的大体思路和先前的思路整体无异,唯一的区别就是需要测试者先写好payload,再进行加密,随后将数据包放出进行注入尝试。加密类型的注入在SQLi-Labs中得到了复现,实验如下:【靶场】SQLi-Labs less-21【原创 2022-05-18 22:33:36 · 1188 阅读 · 0 评论 -
05_SQL注入_功能语句&报错注入&盲注
05_SQL注入_功能语句&报错回显&盲注1. SQL 语句和网站功能1.1 Web开发中常见语句【本章代码来源于pikachu和sqli-lab中的靶场】开发中,根据不同的需求,开发者会采用不同SQL语句与数据库进行交互,渗透测试人员在采用黑盒测试的情况下,根据不同的功能猜测对应语句进行注入是一项必备能力。1. select查询语句select 往往用于网站需要显示查询的操作,考虑如下代码,'name’可以直接拼接到sql语句中,且能够进行回显,那么思路就是可回显注入的一般思路原创 2022-05-07 21:38:43 · 1128 阅读 · 0 评论 -
04_SQL注入_其他数据库&工具的入门
04_SQL注入_其他数据库&工具的入门1. sqlmap 入门前几篇博文主要是以手工方式进行注入,本篇博文简要介绍注入工具的使用。需要注意,工具的使用只是一定程度上提供了便利,并不能完全取代工具,实战中很少存在全自动操作,配合工具半自动操作,或是根据业务自主编写脚本才是可取之法,对于渗透工具的使用和手工操作无非是用筷子吃饭和用叉子吃饭的区别。在使用工具时,也存在一定的限制。信息行业日新月异,工具开发者也不能做到面面俱到,以sqlmap为例,其目前支持的数据库有 MySql、Oracle、Ac原创 2022-05-01 16:34:39 · 2330 阅读 · 0 评论 -
03_SQL注入_数据类型&提交注入
03_SQL注入_数据类型&提交注入1.闭合符号型网页开发中,常见的数据交互类型有数字型和字符串型,此外JSON作为一种以键值对进行数据交互的方式也大量出现在开发者的视野当中。数据类型不同的情况下,手工注入时需要根据不同的数据类型闭合符号,来达到判断注入的目的。考虑如下两段PHP代码代码1:$id=$_GET['id'];$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";$result=mysql_query($sql);$row =原创 2022-04-24 23:10:25 · 2483 阅读 · 0 评论 -
02_SQL注入_Mysql注入_高权限操作&数据读写&简单的防护策略
02_SQL注入_Mysql注入_高权限操作&数据读写&简单的防护策略1.root权限&开发中的权限设置在实际开发中往往会出现一个网站对应一个数据库,而一个数据库对应一个特定管理员的情况。(假设情景中,开发使用的数据库都是Mysql数据库)。考虑第一个情景:比如A网站对应数据库A,而数据库A对应管理员A,如果存在注入点的情况下,测试出是数据库管理员A的权限在操作该网站数据库A,那么在不获取更高级权限的情况下,只能进行对本网站数据库A的本站注入操作。考虑第二个情景:B网站和C网站部原创 2022-04-20 22:36:43 · 2634 阅读 · 0 评论 -
01_SQL注入_Mysql注入利用联合查询的手工注入
01_SQL注入_Mysql注入:利用联合查询的手工注入1.SQL注入的成因【严正声明】仅供学习,勿做他用!!!【严正声明】仅供学习,勿做他用!!!【严正声明】仅供学习,勿做他用!!!遵纪守法,做合格网民!!!!开发过程中,一些开发者会直接将URL的参数,POST方法的参数等一些列外来输入的参数拼接到SQL语句中。上述做法会造成SQL语句的可控,从而使得测试者能够通过执行SQL语句,实现一些自定义操作。$id=$_GET['id'];$fp=fopen('result.txt','a');原创 2022-04-16 23:02:29 · 3935 阅读 · 0 评论