【墨者学院】SQL手动注入 靶场初体验

本文记录了博主在墨者学院靶场进行SQL注入的初体验,包括判断注入、猜解列名数量和信息收集。通过order by和union关键字了解表结构,利用version()和database()等函数获取数据库版本和名称。最终成功获取到靶场数据库的相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主首次浅尝一下SQL注入,一顿操作,然后,啊哈
在这里插入图片描述

破解成功!

墨者学院靶场地址

step1: 判断注入

判断是否存在注入,这个靶场肯定存在注入,在参数id后面拼接一些其他变量即可。

step2: 猜解列名数量

order by 关键字日常使用的时候是按照某个列名去排序,即“order by 列名字段”。
order by 后面加上序号,即按照第几列排序,order by 1,按照第一列的字段进行排序。
order by 默认升序,降序关键字DESC,即order by 字段名 DESC;
所以使用order by关键字就能够知道整个表一共有多少个列。
获取列名数量是为了使用union关键字,union关键字是连接两个查询结果,但是前提条件是两个查询结果的字段个数是一样的。所以要先获取字段(列名)个数。

step3:信息收集函数

查看数据库版本:version()
查看数据库名字:database()
查看数据库用户:user()
查看操作系统:@@version_compile_os<

### 关于SQL手工注入的学习 #### SQL手工注入简介 SQL注入是一种常见的Web应用程序攻击方式,通过向查询参数输入恶意的SQL语句片段,从而改变原有SQL命令的行为。这种技术能够绕过身份验证机制、读取敏感数据甚至控制服务器。 #### 靶场环境介绍 墨者学院提供了一个专门用于练习SQL注入技巧的安全测试平台[^2]。此靶场基于Nginx+PHP+MySQL架构构建而成,并且访问成本低廉——仅需消耗一枚虚拟货币“币”,新用户注册时通常会被赠送足够的余额来进行多次尝试而不必担心额外开销。 #### 实践案例分析 对于想要深入了解如何实施SQL注入的人来说,在实际操作之前先观察目标网站是否存在潜在可利用之处非常重要。比如查看URL中的GET请求参数是否未经充分过滤就被直接拼接到后台执行的SQL指令里;又或者是POST表单提交的数据项有没有被妥善处理等情形都可能是突破口所在[^1]。 当确认存在风险点之后,则可以根据具体场景采取不同策略展开进一步探索: - **字符型字段**:如果发现某个文本框允许接收任意字符串作为输入值的话,那么就可以试着构造一些特殊模式串去试探内部逻辑反应情况。例如`' OR '1'='1`这样的表达式往往能帮助判断出是否有漏洞存在以及其大致位置范围[^3]。 - **联合查询(UNION SELECT)**:这是一种较为高级但也非常实用的方法之一。它可以让攻击者将自己的SELECT子句附加到原始查询后面并获取更多有用的信息。像下面这条语句就是用来枚举当前库内所有表格名称及其所属数据库名的一个例子: ```sql new_list.php?id=-1 UNION SELECT 1,GROUP_CONCAT(TABLE_NAME),DATABASE(),4 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() ``` 请注意上述做法仅供合法授权下的渗透测试培训用途,请勿非法入侵任何网络设施! #### 安全建议 为了防止遭受此类威胁影响业务正常运转,开发者应当遵循最佳编码实践指南,如采用预编译语句代替动态组装SQL文法结构;严格校验前端传来的一切外部可控变量合法性;定期审查源码质量排除隐患等等措施加强防护力度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值