0x01 背景

15年那会,几乎可以说是渗透最火的一年,各种教程各种文章,本人也是有幸在那几年学到了一些皮毛,中间因学业问题将其荒废至今。当初最早学的便是,and 1=1 和 and 1=2 这最简单的检测注入的方法。如今这种网站几乎可以说是没有了吧2333,现在目标也没有以前那么容易找,想来应该也不会有企业用那种源码了。现今刚好在学Python,闲着无事便来写这么个工具练练手。

0x02 准备

  • Python基础(至少要有一定的基础才能看懂)
  • URL采集器(寻找目标)
  • Request库(Requests 是用python语言编写的第三方库,基于 urllib,简单来说就是可以模拟HTTP请求来访问网页)

0x03 思路

  1. .如果你学过以前的新手注入教程,应该知道在网址后面分别加入and 1=1和and 1=2是为了做什么,例如http://www.example.com/article.asp?id=1是一篇文章的链接,假如在其后面加入and 1=1后网页内容仍正常,而在后面加入and 1=2后网页内容发生了改变,那便十有八九是存在SQL注入漏洞。
  2. 使用Requests.get().headers方法,来实现我们的思路,通过HTTP头中的Content-Length字段来判断,若是and 1=1情况的Content-Length与原字段值一致,而and 1=2的情况与原字段值和and 1=1的值不同,则可判断。

0x04 代码

 1 from requests import *
2 def SqlInject(url):
3 PayLoad = {'1':'and 1=1','2':'and 1=2')
4 situation = get(url).headers['Content-Length']
5 situation1 = get(url+PayLoad[1]).headers['Content-Length']
6 situation2 = get(url+PayLoad[2]).headers['Content-Length']
7 if(situation==situation1)and(situation1 != situation2):
8 return True
9 else:
10 return False

[初学Python]编写一个最简单判断SQL注入的检测工具的更多相关文章

  1. 用Python编写一个简单的Http Server

    用Python编写一个简单的Http Server Python内置了支持HTTP协议的模块,我们可以用来开发单机版功能较少的Web服务器.Python支持该功能的实现模块是BaseFTTPServe ...

  2. 初学Python之爬虫的简单入门

    初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫   爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的 ...

  3. Linux驱动学习(编写一个最简单的模块)

    在Linux中想做驱动开发,那么一定要先熟悉module的使用和编写 一.什么是module 从名字上看就是模块的意思,我个人的理解就是一个一个的小程序,可以进行动态的安装和卸载,而在这里面就实现一些 ...

  4. 使用 python 编写一个授权登录验证的模块

    使用 python 编写一个授权登录验证的模块 我们编写的思路: 1.登录的逻辑:如果用户名和密码正确,就返回 token . 2.生成 token 的逻辑,根据用户名,随机数,当前时间 + 2 小时 ...

  5. 简单的SQL注入学习

    引贴: http://blog.163.com/lucia_gagaga/blog/static/26476801920168184648754/ 首先需要编写一个php页面,讲php页面放入/opt ...

  6. 实验吧_简单的sql注入_1、2、3

    简单的sql注入1 看着这个简单的界面,一时间没有特别好的思路,先输入一个1',发生了报错 初步猜测这是一个字符型的注入,他将我们输入的语句直接当成sql语句执行了,按题目的意思后面肯定过滤了很多注入 ...

  7. 【实验吧】CTF_Web_简单的SQL注入之3

    实验吧第二题 who are you? 很有意思,过两天好好分析写一下.简单的SQL注入之3也很有意思,适合做手工练习,详细分析见下. http://ctf5.shiyanbar.com/web/in ...

  8. 实验吧之【简单的sql注入 1、2、3】

    实验吧的三道sql注入(感觉实验吧大部分web都是注入) 简单的SQL注入 地址:http://ctf5.shiyanbar.com/423/web/ 这道题也是sql注入,输入1,页面显示正常,输出 ...

  9. 实验吧简单的SQL注入1,简单的SQL注入

    接上面一篇博客. 实验吧简单的sql注入1 题目连接   http://ctf5.shiyanbar.com/423/web/ 同样,直接输入 1加个但引号,结果下面有返回错误,            ...

随机推荐

  1. 迈入 8K 时代,AI 驱动超高清 “视” 界到来

    2021 年,超高清迈入 "8K" 时代.超高清视频将带来全新视听体验,但超高清生产在内容生产层面也面临着超高清存量少.生产设备更新换代慢.制作周期成倍增加的困境.在 7 月 10 ...

  2. Nacos 笔记

    Nacos 笔记 目录 Nacos 笔记 1. Nacos简介 1.1 主流配置中心对比 1.2 主流注册中心对比 1.3 Nacos特性 2. 安装启动 支持外部 MySQL 3. 配置管理 3.1 ...

  3. 第5篇-调用Java方法后弹出栈帧及处理返回结果

    在前一篇 第4篇-JVM终于开始调用Java主类的main()方法啦 介绍了通过callq调用entry point,不过我们并没有看完generate_call_stub()函数的实现.接下来在ge ...

  4. Install Redmine on Virtual Machine with Vagrant

    Initialize VM: chad@typcserver ~/docs/vagrant-prj $ vagrant --version Vagrant 1.4.3 chad@typcserver ...

  5. Git-08-标签管理

    标签管理 Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针 跟分支很像对不对?但是分支可以移动,标签不能移动 所以,创建和删除标签都是瞬间完成的 Git有commit,为什么还要 ...

  6. python关于多级包之间的引用问题

    首先得明确包和模块. 包:在一个目录下存在__init__.py,那么该目录就是一个包. 模块:一个.py文件就是一个模块. 我们可以通过from 包 import 模块来引入python文件, 也可 ...

  7. NOIP 模拟 $19\; \rm v$

    题解 一道概率与期望的状压题目 这种最优性的题目,我们一般都是倒着转移,因为它的选择是随机的所以我们无法判断从左还是从右更有,所以我们都搜一遍 时间一定会爆,采用记忆化搜索,一种状态的答案一定是固定的 ...

  8. 【编程语言】Matlab 学习记录

    title: Matlab Learning Record date: 2020-05-23 20:11:26 author: liudongdong1 img: https://gitee.com/ ...

  9. flutter中存储键值对简单数据(相当于前端localstorage概念)

    首先需要安装一个官方推荐包: 1 dependencies: 2 flutter: 3 sdk: flutter 4 shared_preferences: any // 先获取 shared pre ...

  10. vue引入zTree入门

    参考1:https://blog.csdn.net/tg928600774/article/details/80911589 参考2:https://blog.csdn.net/ylhsuper/ar ...