设为首页 收藏本站
查看: 749|回复: 0

[经验分享] sql注入在线检测(sqlmapapi)

[复制链接]

尚未签到

发表于 2018-10-22 13:27:20 | 显示全部楼层 |阅读模式
  http://blog.csdn.net/yueguanghaidao/article/details/38026431
  之前一搞***的同事问我,sqlmapapi.py是干啥的,我猜很多人都玩过sqlmap,但玩过sqlmapapi的应该比较少,今天就和大家一起看看如何使用以及一些美的地方。
  说白了,sqlmapapi.py就是提供了一个检查sql注入的接口,我们可以直接通过发送http请求扫描sql注入,获取扫描结果等一系列操作。
  下面通过实例演示如何使用:
  一.启动服务器端

  服务器后端使用的是bottle,一个Python Web微框架。
  二. 我们使用requests这个库发送请求
  1.新建任务

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

  注意:那个cd92e4e99406715b就是新建任务返回的taskid
  3.查看扫描状态

  任务已经结束,可以获取扫描结果了
  4.查看扫描结果

  我们很明显的看出是存在sql注入的
  嘿嘿,是不是很简单,但很强大啊,其实如果深入源码查看,你会发现也很简单。
  比如说启动一个任务,
  [python] view plaincopy

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

  •   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框架,后期也会有这方面的分析。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625042-1-1.html 上篇帖子: Tomcat 高并发 server.xml-7727197 下篇帖子: socket编程(实现简单的client与server相互通信)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表