0x00前言:

昨天刚刚看完小迪老师的sql注入篇的第一章

所以有了新的笔记。

0x01笔记:

sql注入原理:
网站数据传输中,接受变量传递的值未进行过滤,导致直接带入数据库查询执行的操作。
sql注入对渗透的作用:
获取数据
sql注入特性:
攻击方法由数据库类型决定
攻击结果由数据库决定 漏洞代码:
sql.php
<?php
$id=$_GET['x'];
$sql="select * from news where id=$x";
还没完
?> 当我们在网页执行访问了:
http://127.0.0.1/sql.php?x=1
在数据库其实是这样的
$id=1
select * from news where id=1 注入语句 http://127.0.0.1/sql.php?x=1 and 1=1 真
select * from news where id=1 and 1=1
返回正常页面 http://127.0.0.1/sql.php?x=1 and 1=2 假
select * from news whsere id=1 and 1=2
返回错误页面 and or xor
且 或 非
sql语句中逻辑运算符:
and 1=1 真且真=真
or 1=2 真或假=真
and 1=2 真且假=假 sql注入拓展深入部分:
sql注入能调用数据库作的动作(例如:文件读写,调用执行等) php一些sql的函数:
mysql_connect(); mysql连接函数
mysql_select_db(); 选择对应数据库
mysql_query(); mysql执行函数 sql注入产生的必备条件:
1.变量接受 判断变量是否接受了:打开一个有id的站修改id看看页面会不会变化,如果变化了就代表变量接受。如果没变化,就代表变量不接受。 2.带入数据库查询执行 判断是否带入数据库查询执行:打开一个有id的站修改id看看页面会不会变化,如果变化了就代表带入了数据查询执行。如果没变化,是没带入数据库查询执行的也就是说页面是不会变动的。 3.不存在过滤(可尝试绕过) 题目:
1.请从下面站点地址选择可能存在注入的选项(BCD) 1. www.dikesec.com/news.php
2. www.dikesec.com/news.php?id=1
3. www.dikesec.com/news.php?id=1&page=2
4. www.dikesec.com/login.php 注入代码前面必须空一个格
2.参数page存在注入,请问下面注入测试正确的是(AC)
A.www.dikesec.com/news.php?id=1&page=1 and 1=1
B. www.dikesec.com/news.php?page=1&id=1 and 1=1
C. www.dikesec.com/news.php?page=1 and 1=1 &id=1 www.dikesec.com/news.php?page=1&id=1 如果page是注入点
就要在page后面空一格加注入代码,而不是在后面加 在我们放入sqlmap进行sql扫描的的时候必须理清楚哪里是注入点,如果page是注入点的话我们得这样
www.dikesec.com/news.php?id=1&page=1
这样就可以放到工具里扫了 例子:
http://www.gdgy33.com/page.php?id=150&aid=3&bid=1
假设id存在注入我们得移到后面去 变成这样子
http://www.gdgy33.com/page.php?bid=1&aid=3&id=150
不会影响页面的 post注入:
假设有个表单让你进行注入。因为表单的条件方式都是POST。在表单里输入恶意代码也会产生注入点 cookie注入:
把恶意代码带到cookie后面。

  0x02初步:

今天是我们学习sql注入的第一天,就先写判断注入的脚本吧。后面慢慢加上去

import  requests
import socket
import time logo="""
___====-_ _-====___
_--^^^#####// \\#####^^^--_
_-^##########// ( ) \\##########^-_
-############// |\^^/| \\############-
_/############// (@::@) \\############\_
/#############(( \\// ))#############\
-###############\\ (oo) //###############-
-#################\\ / VV \ //#################-
-###################\\/ \//###################-
_#/|##########/\######( /\ )######/\##########|\#_
|/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
` |/ V V ` V \#\| | | |/#/ V ' V V \| '
` ` ` ` / | | | | \ ' ' ' '
( | | | | )
__\ | | | | /__
(vvv(VVV)(VVV)vvv)
"""
print(logo)
def sql():
global url
url=input('[^]Please enter the URL that needs test injection:').lower()
if url !=None:
time.sleep(0.5)
header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}
print('[1]GET')
print('[2]POST')
lwd=input('[^]Please enter what kind of method you want to ask for:')
if lwd=="1":
r=requests.get(url,header)
status=r.status_code
if status == 200:
print('\033[1;32;40m')
print('[^]Link stability')
print('\033[0m')
else:
print('\033[1;31;40m')
print('[~]State code',status)
print('[^]Response code')
print('\033[0m')
exit()
elif lwd=="2":
r=requests.post(url,header)
status=r.status_code
if status == 200:
print('\033[1;32;40m')
print('[^]Link stability')
print('\033[0m')
else:
print('\033[1;31;40m')
print('[~]State code', status)
print('[^]Response code')
print('\033[0m')
exit()
else:
print('[~]Not Found')
exit()
sql() def zhuru():
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}
url1=url+'%20and%201=1'
url2=url+'%20and%201=2'
zhusx=requests.get(url,headers).content
zhus=requests.get(url1,headers).content
zhuss=requests.get(url2,headers).content
if zhusx == zhus and zhusx !=zhuss:
print('[^]Discovery of injection point')
else:
print('[~]No injection point was found')
exit() zhuru()

运行截图:

python 打造一个sql注入脚本 (一)的更多相关文章

  1. python打造一个Mysql数字类型注入脚本(1)

    前言: 总是想写一个sql注入脚本,但是之前的那些都不行. 这次做好了准备,然后嘿嘿嘿. 准备: sql注入的基础知识 熟悉怎么判断 正文: 思路概念图: 这里我没有限制用户输入,不限制的话可能会 @ ...

  2. Python中防止sql注入的方法详解

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库.下面这篇文章主要给大家介绍了关于Python中 ...

  3. 如何编写一个SQL注入工具

    0x01  前言 一直在思考如何编写一个自动化注入工具,这款工具不用太复杂,但是可以用最简单.最直接的方式来获取数据库信息,根据自定义构造的payload来绕过防护,这样子就可以. 0x02 SQL注 ...

  4. phpcms v9 sql注入脚本

    phpcms v9 SQL注入脚本 用法:python phpcms.py http://www.baidu.com import requests,sys,urllib url = sys.argv ...

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

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

  6. [Python] 用python做一个游戏辅助脚本,完整思路

    一.说明 简述:本文将以4399小游戏<宠物连连看经典版2>作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对.对于有兴趣学习游戏脚本的同学有一定的帮助. 运行环境:Win10/Py ...

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

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

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

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

  9. 常规SQL注入脚本

    一:union报错注入 猜字段长度:order by 28 先显示位http://127.0.0.1/sql.php?cmd=-1 UNION SELECT 1,2,3,4,5,6,7,8,9 当前数 ...

随机推荐

  1. wireshark的提示

    内容:12个wrieshark的提示 1.[Packet size limited during capture] 在捕获数据包大小有限,即包没有抓全 2.[TCP previous segment ...

  2. 奇异值分解(SVD)详解

    在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系.前段时间看了国外的一篇文章,叫A Singularly Valuable Decompos ...

  3. HDU2473 Junk-Mail Filter 【可删除的并查集】

    HDU2473 Junk-Mail Filter Problem Description Recognizing junk mails is a tough task. The method used ...

  4. 体验 k8s 的核心功能

    快速体验 k8s 的核心功能:应用部署.访问.Scale Up/Down 以及滚动更新 https://yq.aliyun.com/articles/337209?spm=a2c4e.11153940 ...

  5. 强大的Core Image(教你做自己的美图秀秀))

    iOS5新特性:强大的Core Image(教你做自己的美图秀秀))       iOS5给我们带来了很多很好很强大的功能和API.Core Image就是其中之一,它使我们很容易就能处理图片的各种效 ...

  6. 《selenium2 python 自动化测试实战》(6)——打印信息和设置等待时间

    打印信息经常用的有两个: # coding: utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get( ...

  7. SQL语句中—删除数据

    老大------drop 出没场合:droptable tb --tb表示数据表的名字,下同 绝招:删除内容和定义,释放空间.简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表 老二- ...

  8. coredns 编译模式添加插件

    备注:    coredns 默认已经安装了一些插件,比如大家用的多的kubernetes etcd ... 但是我们可以自己编译插件,构建我们自己的 coredns 版本,方便集成使用 1. 项目结 ...

  9. 纯 as3 项目中引用 fl 包下的类

    如果安装了 Flash IDE, 将下面的文件添加到项目的 libs 中即可:D:\Program Files\Adobe\Adobe Flash CS6\Common\Configuration\A ...

  10. XaaS简介(关于IssS,PaaS以及SaaS)

    IaaS,比较容易理解,提供了一个操作系统以及操作系统的硬件支撑:阿里云: PaaS,提供了一个平台,或者说,使用PaaS是希望能够在上面建立自己的服务/应用,同时平台会提供一些API或者工具,能够降 ...