DVWA(Damn Vulnerable Web Application),是一个用PHP编写的,作为Web安全测试练习平台的合法环境(毕竟咱不能为了练习就随便找个网站去攻击...),也就是俗称的靶场. DVWA提供了常见的多种练习场景,包括SQL注入,XSS,暴力破解,命令行注入,CSRF等,对刚开始学习的童鞋来说完全够用.DVWA还很贴心的提供了从易到难的四种安全级别:Low,Medium,High,Impossible. 本文主要记录DVWA的搭建过程. 安装Wampserver 运行DV…
目标:编写SQL动态查询,防止SQL注入 通常所说的“SQL动态查询”是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句. 反模式:将未经验证的输入作为代码执行 当向SQL查询的字符串中插入别的内容,而这些被插入的内容以你不希望的方式修改了查询语法时,SQL注入就成功了. 传统的SQL注入案例中,所插入的内容首先完成了一个查询,然后再执行第二个完整的查询逻辑比如:@bugId的值是 1234;Delete from Bugs,最后的SQL语句变成如下格式: Select * from B…
mysql数据库中有两个函数:concat和updatexml,在sql注入时经常组合使用,本文通过学习concat和updatexml函数的使用方法,结合实例来理解这种sql注入方式的原理. concat函数是mysql的字符串连接函数,定义如下: 先来验证下concat函数的功能: select concat('m','y','s','q','l') 验证结果:如定义所示,concat将字符串连接起来了 如果把SQL语句放在concat中,SQL语句会被执行么? select concat(…
接上一篇SQL注入的学习笔记,上一篇我通过报错信息得知后台数据库是MySQL(这个信息非常重要~),然后通过SQL注入拿到了用户表的所有行,其实我们还可以通过MySQL的特性来拿更多的信息. 1. 获取当前数据库名称 输入:2' union select 1,database() ' 输出:数据库名称为dvwa database()是Mysql自带函数,用来获取当前数据库名称. 2.获取当前数据库所有表名 输入:1' union select 1,table_name from informat…
Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20order%20by%202 字段数为2 ?id=1%20and%201=2%20union%20select%201,2 1,2位置都回显,查表名 ?id=1%20and%201=2%20union%20select%20group_concat(table_name),2%20from%20inform…
SQL注入的定义网上很多,作为一个初学者,我对SQL注入的理解是这样的:网站应用一般都有后台数据库(不论是关系型还是非关系型),用户在网站上的绝大部分操作,最终都会跟数据库交互(也就是执行一串SQL语句).既然最终是执行一串SQL语句,那攻击者只要猜到了这串SQL语句从前端输入到最后执行是如何拼接的,就可以拼接自己的恶意SQL语句,来非法获取数据.所以,要学习SQL注入,首先,你得会SQL~O(∩_∩)O~ 我用DVWA来练习SQL注入,先将安全等级设置为low,如下: 进入SQL Inject…
之前的sql注入页面(https://www.cnblogs.com/sallyzhang/p/11843291.html),返回了查询结果和错误信息.而下面的页面,返回信息只有存在和不存在两种情况,错误信息页面也被屏蔽了,这种情况下我们能得到的信息很少,且需要自己判断注入是否成功,所以叫盲注(名字很形象啊~)       盲注的注入方法,简单来说就一个字:猜 ...>_<.... 怎么猜呢?用猜数据库名称长度来举个栗子: 输入:1' and length(database()) = 1 #…
ASP注入漏洞 一.SQL注入的原因 按照参数形式:数字型/字符型/搜索型 1.数字型sql查询 sql注入原因: ID=49 这类注入的参数是数字型,SQL语句原貌大致如下: id=request.querystring("id") sql="select * from 表名l where 字段= "&id sql注入产生,sql闭合 注入的参数为 ID=49 And [查询条件],即是生成语句: sql="Select * from 表名 wh…
密码爆破简单来说,就是使用密码本(记录了若干密码),用工具(手工也可以,if you like...)一条条读取密码本中的密码后发送登录请求,遍历密码本的过程中可能试出真正的密码. 本文学习在已知登录名的情况下,使用Burp Suite破解密码的过程,对于一个初学者来说,Burp Suite使用起来比较恼火,所以我把操作步骤详细记录下来了. 还是DVWA,先设置security=low,密码输入错误和正确时,页面下方会给出相应提示:     破解过程如下: 1. 首先我们去网上下个密码本(git…
基础知识 文件包含指的是一个文件动态引用另一个文件,这是一种非常灵活的动态调用方式.有点类似Java引用jar包,但区别在于jar包引用后一般是固定不变的(一般不能动态改变所引用的jar包名称),而文件包含可以将引用的文件名作为参数传递.php的文件包含举例: 利用原理 引用文件名作为传入参数暴露出来时,用户可传入任意文件名/恶意代码,且程序本身没有进行严格校验/过滤时,便会形成文件包含漏洞.其危害在于: 1. 泄露服务器敏感数据 2. 恶意代码注入(可能导致被getshell) 利用方式 用D…
CSRF(Cross-site request forgery)跨站请求伪造,CSRF的原理简单来说就是攻击者以用户的名义对服务器发起请求,从而达到攻击目的.与XSS不同之处在于,XSS是盗取用户cookie,而CSRF是直接利用用户cookie(因此服务器会认为是用户本人在操作). 用DVWA的练习来简单理解CSRF的工作原理. low模式(钓鱼页面) 开一个虚拟机模拟被攻击用户A,A用户登录DVWA,并设置security level=low, 进入CSRF页面,该页面是用来修改当前登录用户…
XSS(Cross-Site Scripting)大致分为反射型和存储型两种,之前对XSS的认知仅停留在如果网站输入框没有屏蔽类似<script>alert('ok')</script>的代码,那么这个网站就有被XSS攻击的风险,到底有什么风险呢?又是怎么被攻击的呢?sorry,我也不知道>_< 我用DVWA来练习存储型XSS,目标是窃取用户账号(通过拿到对方的登录cookie).我在本机再开一台虚拟机,用虚拟机(模拟另一个用户)访问:http://IP地址/dvwa/…
很多网站都有上传资源(图片或者文件)的功能,资源上传后一般会存储在服务器的一个文件夹里面,如果攻击者绕过了上传时候的文件类型验证,传了木马或者其他可执行的代码上去,那服务器就危险了. 我用DVWA的文件上传来做练习,low模式没有任何验证,随便上传任意大小和类型的文件,现实中一般不会存在,故跳过,从medium模式开始. 进入页面后,我尝试传一个php文件上去(文件中有一段代码,用来列出上级目录的所有文件),下图说明medium模式对文件类型进行了限制(在做这个练习此之前,我觉得做了类型限制就很…
Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/ 2. Ubuntu 16.04自带python版本是2.7,需要自己安装3.5,安装命令如下: sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-…
一,Session:含义:有始有终的一系列动作\消息1, 隐含了“面向连接” 和“保持状态”两种含义2, 一种用来在客户端与服务器之间保持状态的解决方案3, 也指这种解决方案的存储结构“把××保存在session里” 二, http 协议本来是无状态的,所以引进了cookie和session机制来保持连接状态 cookie与session 机制之间的区别与联系:cookie机制采用的是在客户端保持状态的方法session机制采用的是在服务器端保持状态的方案,由于在服务器端保 持状态的同时必须要求…
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了. 今天把我一直以来整理的sqlmap笔记发布上来供大家参考 sqlmap简介 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可以根据返回页面判断条件真假的注入. 2.基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断. 3.基于报…
以DVWA为例,进行手工注入,帮助读者了解注入原理和过程. 1.启动docker,并在终端中执行命令: docker ps -a docker start LocalDVWA docker ps 执行结果如图4-19所示. ​ 图4-19  启动DVWA 2.在浏览器地址栏输入127.0.0.1后回车,浏览器打开了DVWA页面(DVWA在前面的章节中已建立完毕).先点击左侧栏的DVWA Security,将难度调整至Low级别.单击左侧栏的SQL Injection,进入SQL注入页面,如图4-…
SQLMAP学习笔记1  access注入 Sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点: 完全支持MySQL.Oracle.PostgreSQL.Microsoft SQL Server.Microsoft Access.IBM DB2.SQLite.Firebird.Sybase.SAP MaxDB.HSQLDB和Informix等多种数据库管理系统. 完全支持布尔型盲注.时间型盲注.基于错误信息的注入.联合查询注入和堆查询注入. 在数据库证书.IP地址.端口和…
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  …
原文:读书笔记之SQL注入漏洞和SQL调优 最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优. 1. SQL注入漏洞 由于“'1'='1'”这个表达式永远返回 true,而 true 与任何布尔值的 or 运算的结果都是 true,那么无论正确密码是什么“Password='1' or '1'='1'”的计算值永远是 true,这样恶意攻击者就可以使用任何帐户登录系统了.这样的漏洞就被称作“SQL 注入漏洞(SQL Inj…
i春秋作家:Vulkey_Chen 首先感谢朋友倾璇的邀请 http://payloads.online/archivers/2018-03-21/1 ,参与了<web安全测试学习手册>的相关撰写,目前负责业务逻辑测试这一块的撰写,目前初步已经成型,先发出来让大家看看,欢迎点评,也可以加入我们一起来撰写~ 业务逻辑测试 介绍:这里对Web应用业务逻辑方面的安全缺陷进行介绍和常见案例讲解. 任意用户密码重置 常见的缺陷 * 1.验证码类缺陷 场景: 1.1 验证码回显在客户端(响应主体.Set-…
SpringMVC:学习笔记(11)——依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许Spring解析并将相关bean注入到bean中. 使用@Autowired在属性上 这个注解可以直接使用在属性上,不再需要为属性设置getter/setter访问器. @Component("fooFormatter") public class FooFormatter { publi…
DVWA sql注入low级别 sql注入分类 数字型注入 SELECT first_name, last_name FROM users WHERE user_id = $id 字符型注入 SELECT first_name, last_name FROM users WHERE user_id = '$id' 一般可以通过直接输入单引号来判断是否存在注入点 通过输入3和1+2判断注入为字符型注入,若为数字型注入,则3和1+2输出一样 字符型注入 字符型注入最关键的是如何闭合SQL语句以及注释…
Spring源码学习笔记9--构造器注入及其循环依赖 一丶前言 前面我们分析了spring基于字段的和基于set方法注入的原理,但是没有分析第二常用的注入方式(构造器注入)(第一常用字段注入),并且在循环依赖问题上构造器注入常被说spring无法解决构造器注入的循环依赖,下面我们来分析构造器注入和其循环依赖的源码 二丶构造器依赖注入 在spring初始化每一个非抽象,单例,非懒加载的bean的时候,会调用createBeanInstance方法去创建bean的实例,在使用默认的策略--无参构造o…
按照惯例,利用OWASP ZAP工具扫描SQL injection漏洞时,应该很快就可以扫描出来,但是在笔者进行扫描的时候,却遇到了以下状况: 这说明了该工具根本就没能够扫描出SQL注入的漏洞,不知道该如何解决.因此我还是推荐大家用其他工具进行扫描,比如APPscan等工具,扫描的结果会在后续公布出来.…
一.为何要了解Web安全 最近加入新公司后,公司的官网突然被Google标记为了不安全的诈骗网站,一时间我们信息技术部门成为了众矢之的,虽然老官网并不是我们开发的(因为开发老官网的前辈们全都跑路了).我们花了很多时间做Web安全扫描以及修复,在检查和修复过程中,发现老系统的代码的不可维护性(再次说明整洁代码之道Clean Code的重要性)及安全性(同时也说明了Web安全的重要性). 修复之后,向Google提出了申诉,漫长的等待(1~2天对于公司的官网来说就是Money啊!)后Google放开…
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门参考大量前辈们的心得,小小的总结一下,欢迎大家拍砖啊 一.跨站脚本攻击(XSS) 跨站脚本攻击的原理 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时…
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门参考大量前辈们的心得,小小的总结一下,欢迎大家拍砖啊 一.跨站脚本攻击(XSS) 跨站脚本攻击的原理 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时…
用户名: __________ 密码:——————— 假如没有使用预处理的Statement 对象 拼接字符串查数据库的话,易收到sql注入攻击: 例如说 : mysql 中   #代表的是单行注释 SELECT * FROM t_users WHERE EID=''OR 1=1 #' AND EName='missli' 你在用户名输入框中 只要填写  'OR 1=1 #  这个用户名,那么无论怎么验证 都会通过的! 甚至更邪恶一点的你可以在输入框中填写  'OR 1=1 ;Drop  t_u…
简介  原题复现:  考察知识点:SSRF.反序列化.SQL注入  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 过程 分析了整体结构 点击jion可以添加账号还有博客地址添加OK之后会有ifram把你的博客地址引用到当前页面 jion添加的信息点击进入发现了get注入点 注入进去没flag 不过在data字段下发现了序列化的值 /view.php?no=1 and 1=1 /view.php?no=1 and…