• 第一章、为了女神小芳


    第一章:为了女神小芳(新人能看懂的思路)

    当我刚学完sql注入,感觉自己的任督二脉好像被打通了,想要和高手过两招,但是奈何pikachu已经满足不了我

    的强大了,于是我在苦苦寻找对手,就在这时,我的好大哥yue哥,给我推荐了封神台这个靶场。

    封神台官网 :https://hack.zkaq.cn/

    0x01. 明确目标

    为了我的女神小芳我发了猛烈的进攻 网址:https://hack.zkaq.cn/battle

    image-20210101170140033

    注入的目标,拿到管理员的密码

    image-20210101170251191

    0x02. 寻找注入点

    我大笔一挥,点击传送门

    image-20210101170506024

    凭借我敏锐的直觉,我要点击这个蓝色的a标签,这个超链接一定会把我带到考场,废话你看看地址栏啥也没有,

    当前页面盲猜肯定和数据库没交互,肯定没有注入点

    image-20210101170801103

    熟悉的它,熟悉的我,熟悉的我们又见面了,?id=1 于是我连忙或成id=2试试会有什么不同,我不喜欢辛巴

    image-20210101170954886

    这个懒偷的好,偷的秒,偷的瓜瓜叫,一下子将让我闻得到了sql注入点的那股熟悉的味道

    于是我,三剑客又来了单引号,and 1=1,and 1=2,果然是一个注入点

    image-20210101171307283

    image-20210101171338497

    image-20210101171356468

    虽然页面没有报错回显,但是当'和and 1=2时,页面都是空内容,说明都带入到数据库查询了,很有可能是代码

    层面有对报错和布尔状态的一个检验,把这两中查询结果都用空内容展示。既然判断出来是注入点了,那么就开始

    来一发注入吧

    0x03. 注入流程

    1. 注入方法的选定

    很多时候你都不知道对待一个注入点你改怎么注入,虽然你的小脑瓜记住了很多注入的方法,但是你要学会灵活使

    用啊,换句话来说你要知道什么情况使用什么注入方法,一般人的思路就是挨个试,没错就是挨个试,先挑最快

    的,毕竟天下武功为快不破 --- 联合注入

    2. 确定主查询语句的字段数

    ?id =1 order by 1
    # 结果返回正常
    
    ?id =1 order by 2
    # 结果返回正常
    
    ?id =1 order by 3
    # 结果返回不正常
    

    image-20210101173217262

    于是判断出主查询语句的字段数为2

    3. 确定页面回显位置

    ?id=1 and 1=2 union select 741,521
    

    别问我为什么不是1,2,我只想说1,2有什么意思,年轻就是要不一样

    image-20210101173529677

    ok,确定了显示内容的位置,接下来就是唠家常了,就那几句

    4. 获取库信息

    数据库类型

    ?id=1 and 1=2 union select 741,@@datadir
    

    image-20210101173831276

    mysql我喜欢,盲猜一波版本必定大于5.0,大于5.0你懂的哈,information_schema

    版本信息

    ?id=1 and 1=2 union select 741,version()
    

    image-20210101173935129

    当前数据库名称

    ?id=1 and 1=2 union select 741,version()
    

    image-20210101174032218

    据我了解mysql数据库的用户密码是放在mysql库下的use表里面,既然是这样为何不尝试一下呢,反正又没人,

    说不定试一试就成了呢

    ?id=1 and 1=2 union select 741,password from mysql.user
    

    image-20210101174324665

    还是自己太年轻啊,人家说了要管理员的密码,但是管理员不一定是数据库管理员啊,这波是我sb了,而且没有

    这个表

    5. 获取表信息

    获取当前库下所有的表

    ?id=1 and 1=2 union select 741,group_concat(table_name) from information_schema.tables where table_schema="maoshe"
    

    image-20210101174832350

    看到admin我觉得离成功就差一步了,哈哈哈哈

    6. 获取密码

    我已经等不及了,什么字段的,就懒得看了,凭借我多年老司机的经验

    我断定用户名字段必是username,密码字段必是password,而且管理员用户名必是admin,就赌上我这200的

    智商拼一把

    ?id=1 and 1=2 union select 741,password from maoshe.admin where username="admin"
    

    image-20210101175309027

    哎呦不错,我果然是神机妙算,一把猜中

    7. 提交flag验证

    hellohack
    

    image-20210101175443853

    image-20210101175548946

    0x04. 总结

    靶场挺不错的,对待我这种看上去只会吹b,但是又有点操作的小白还是不错的,一般简单的SQL注入你就用联合

    查询,如果页面没有回显内容再尝试报错注入,最后如果还是不行,那就用绝招盲注

    image-20201230214811082

  • 相关阅读:
    管程|| 同步与互斥的实现策略
    sqlserver 用户定义表类型
    C# Post Get 方式发送请求
    linux centos Supervisor守护.netcore进程安装配置
    linux cenos开放端口
    SqlServer DbHelper
    C# 执行js
    sql 多行、一行 互转
    sql 删除完全表中完全重复的数据保留一条
    sql 行列互转
  • 原文地址:https://www.cnblogs.com/xcymn/p/15712471.html
Copyright © 2020-2023  润新知