sql注入在线检測(sqlmapapi)

简介:

 之前一搞渗透的同事问我。sqlmapapi.py是干啥的,我猜非常多人都玩过sqlmap,但玩过sqlmapapi的应该比較少,今天就和大家一起看看怎样使用以及一些美的地方。

说白了。sqlmapapi.py就是提供了一个检查sql注入的接口。我们能够直接通过发送http请求扫描sql注入。获取扫描结果等一系列操作。

    以下通过实例演示怎样使用:

一.启动server端


server后端使用的是bottle,一个Python Web微框架。


二. 我们使用requests这个库发送请求

1.新建任务

2.发送扫描选项,开启扫描

          

注意:那个cd92e4e99406715b就是新建任务返回的taskid

      3.查看扫描状态

       任务已经结束。能够获取扫描结果了

      4.查看扫描结果

我们非常明显的看出是存在sql注入的


嘿嘿,是不是非常easy,但非常强大啊,事实上假设深入源代码查看,你会发现也非常easy。

比方说启动一个任务,

def engine_start(self):
        self.process = Popen("python sqlmap.py --pickled-options %s" % base64pickle(self.options),
                             shell=True, stdin=PIPE, close_fds=False)
其他的也是一目了然。

   def engine_stop(self):
        if self.process:
            return self.process.terminate()
        else:
            return None

    def engine_kill(self):
        if self.process:
            return self.process.kill()
        else:
            return None

    def engine_get_returncode(self):
        if self.process:
            self.process.poll()
            return self.process.returncode
        else:
            return None

    def engine_has_terminated(self):
        #怎样任务没有结束,returncode的返回值为None
        return isinstance(self.engine_get_returncode(), int)

我们restful api设计也是非常有讲究的,一般少用动词,而是通过http的方法代表动作。比方说获取状态。并非getstatus,而是通过get方法。和status名称就非常贴切。

但有时动词是不可避免的,怎样说start,stop等。事实上看看新建任务的api设计作者肯定也非常纠结。本来假设新建任务有參数的话,直接post方法就能够,压根不须要new这个动词。但因为新建任务不须要不论什么參数。使用post方法也不太恰当,所以改为get方法了。这也符合上面开启任务使用post。而停止任务使用的是get。


 很多其他细节问题须要大家去看文档或源代码。刚好趁着这个机会好好分析下subprocess模块和bottle框架,后期也会有这方面的分析。






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5369707.html,如需转载请自行联系原作者

相关文章
|
2天前
|
SQL 安全
jeecg-boot sql注入漏洞解决
jeecg-boot sql注入漏洞解决
|
4天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
13 0
|
6天前
|
SQL 安全 关系型数据库
SQL 注入神器:SQLMap 参数详解
SQL 注入神器:SQLMap 参数详解
|
12天前
|
SQL 存储 Java
如何避免SQL注入?
【4月更文挑战第30天】如何避免SQL注入?
25 0
|
12天前
|
SQL 安全 PHP
【PHP 开发专栏】PHP 防止 SQL 注入的方
【4月更文挑战第30天】本文介绍了PHP防止SQL注入的策略,包括理解SQL注入的原理和危害,如数据泄露和系统控制。推荐使用参数化查询(如PDO扩展)、过滤和验证用户输入,以及选择安全的框架和库(如Laravel)。此外,强调了保持警惕、定期更新维护和开发人员安全培训的重要性,以确保应用安全。
|
12天前
|
SQL 存储 安全
|
12天前
|
SQL Oracle 关系型数据库
常见 SQL 注入绕过方法
常见 SQL 注入绕过方法
|
12天前
|
SQL Oracle 关系型数据库
利用 SQL 注入提取数据方法总结
利用 SQL 注入提取数据方法总结
|
12天前
|
SQL 关系型数据库 MySQL
利用 SQL 注入识别数据库方法总结
利用 SQL 注入识别数据库方法总结
|
12天前
|
SQL Oracle Java
SQL 注入神器:jSQL Injection 保姆级教程
SQL 注入神器:jSQL Injection 保姆级教程