文件上传--黑/白名单绕过
文件上传–黑/白名单绕过1、文件上传常见验证:后缀名,类型,文件头等后缀名:黑名单,白名单文件类型:MIME(抓包时,Content-Type这个字段)信息文件头:内容头信息2、常见后缀黑名单(明确不让上传的脚本格式后缀):asp,php,cgi,jsp,war,aspx3、常见后缀白名单(明确可以上传的脚本格式后缀,较黑名单验证安全):png,jpg,zip,rar,gif4、上传脚本时,类型(后缀名)尽量与对方的网站搭建类型(php搭建的,上传.php)保持一致。5、.htacces文件(自己上网搜配置)是Apache的一个配置文件,上传文件时先上传这个,后面上传的指定正常文件(如jpg等图片格式),然后访问这个文件,会被当做php代码执行,但是其他的任何图片不受影响。6、了解一次过滤与循环过滤的区别。7、白名单绕过中的%00绕过与0x00绕过:条件:php版本小于5.3.4php的magic_quotes_gpc为OFF状态%00是urlencode(get方法),0x00是十六进制(post方法)。8、在get方法传数据不用编码,而在post方法传数据需要编码(get ...
文件上传基础
文件上传基础
什么是文件上传漏洞?123文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。
有两个注意的地方:1、若存在文件上传的功能,则可以测试其是否存在文件上传的漏洞。2、但同时,若存在文件上传的功能,我们可以测试其是否存在文件上传漏洞。
文件上传漏洞有哪些危害?高危漏洞,若上传一个后门文件(webshell),则可以直接获取到当前网站的权限。
文件上传漏洞如何查找及判断?查找:1、黑盒查找: 暴力方法,通过一些软件进行目录扫描 通过会员中心上传头像之类的 通过后台权限获取网站权限2、白盒查找:拿到代码,分析代码。判断:自己抓包测试。需要注意的地方:判断上传漏洞的类型。
一些文件上传漏洞相关演示1、常规文件上传地址的获取说明(怎么发现文件上传漏洞,如何突破):18:152、不同格式下的文件类型后门测试(重要):24:203、配合解析漏洞下的文件类型后门测试(可以学习一下使用vulhub):30:00
...
SQL注入练习遇到的问题
SQL注入练习遇到的问题1、报错盲注时(insert与update型),语句的插入位置心得:在解题时,若注册输入的数据是字符串型的(如用户名),则不建议在其后插入(会出现一个截断错误),尽量在纯数字后面(如电话)插入。2、limit 0,1表示从第一行开始取一个。3、若是删除记录(delete),直接在get请求的参数值(如id)后面注入(报错盲注)。4、注意在bp当中,get请求当中去输入sql语句时,空格用+替代,否则会出现问题。
SQL注入--SQL堆叠注入以及WAF绕过注入
SQL注入学习笔记(六)–SQL堆叠注入以及WAF绕过注入stacked injections(堆叠注入)定义: 从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。 而在真实的运用中也是这样的,我们知道在mysql 中,主要是命令行中,每一条语句结尾加;表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做stacked injection。 局限性:只产生于部分数据库。 备注:堆叠注入的可以运用于创建用户。由于我们使用网站用户进行注入不能查看到数据库的密码,但是我们可以创建用户来登录迂回的注入数据库,这样可以通过插入数据实现正常登录。前提是网站的管理员必须是高权限。堆叠注入演示:4:00
WAF绕过主要研究三种WAF:阿里云盾、安全狗(易)、宝塔(难)。1、绕过安全狗演示(更改传参方式:35:00
1一些injection payload
2、绕过思路之一些数据绕过的知识干货(内联注释/**/的妙用):45:003、绕过思路之注释符(%27)以及换行符(%0A)绕过的妙用:1:05:004、绕过思路之特殊符号、内联注释以及http参数污染 ...
SQL注入--查询方式、报错盲注、二次、加解密以及DNSlog等注入
SQL注入学习笔记(五)–查询方式、报错盲注、二次、加解密以及DNSlog等注入1拿到一个网站,先判断其最可能是何种查询方式,再判断其有无回显,最后选择注入方式。
当进行SQL注入时,有很多注入会出现无回显的情况,其中不回显的原因可能是SQL语句查询方式(如增删改)的问题导致,这个时候我们需要用到相关的报错或盲注进行后续操作,同时作为手工注入时,提前了解或预知其SQL语句大概写法也能更好的选择对应的注入语句。(有时候select语句的执行结果也无回显,仅仅是对select的结果进行判断,然后返回的东西不涉及真实数据。)
SQL语句盲注盲注就是在注入过程中,获取的数据不能回显至前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。我们可以知道盲注分为以下三类:
12341、基于布尔的sQL盲注-逻辑判断 regexp, like , ascii,left, ord , mid2、基于时间的sQL盲注-延时判断 if ,sleep3、基于报错的sQL盲注-报错回显(强制回显) floor, updatexml, extractvalue --先强制报错,不行再逻辑判断, ...
SQL注入--除MYSQL数据库(如mongoDB,oracle等)的注入
SQL注入学习笔记(四)–除MYSQL数据库(如mongoDB,oracle等)的注入12除了Access外,其他数据库类型结构均与MYSQL结构相差不大,只是相关注入语句不同。可以用一些工具判断数据库的类型,如SQLmap,kali等。
ACCESS注入1、Access数据库结构(单库,不存在跨库)表名列名数据2、access 数据库都是存放在网站目录下,后缀格式为 mdb,asp,asa,可以通过一些暴库手段、目录猜解等直接下载数据库Access扁移注入:解决列名获取不到的情况查看登陆框源代码的表单值或观察URL特征等也可以针对表或列获取不到的情况
access三大攻击手法1.access注入攻击片段-联合查询法2.access注入攻击片段-逐字猜解法3.工具类的使用注入(推荐)
Access注入攻击方式union 注入、http header 注入、偏移注入等Access数据库注入演示:31:00
mssql注入mssql特有的系统表:sysobjectsmssal(SQLserver)数据库注入演示:41:00
postgresql注入各种注入工具(如sqlmap)的使用
Or ...
SQL注入--类型以及提交注入
SQL注入学习笔记(三)–类型以及提交注入参数类型以及请求方法12345678#简要明确参数类型数字,字符,搜索,JsoN等#简要明确请求(提交)方法1、GET, POST,COOKIE(不是请求方法,仅仅是数据包内的东西),REQUEST,HTTP头部注入(User-Agent注入、Referer注入)等--这几种都存在注入。大数据、重要数据、表单用post提交;小数据用get提交;request全部(GET,POST)接收。2、其中sql语句干扰符号: ',",s,),}等,具体需看写法,自己尝试。3、对方采取什么方式提交数据,那么你就应该采取那种方式注入。4、$_SERVER('HTTP_USER_AGENT'),获取对方网站硬件配置(如操作系统)信息--拓展原有注入思路,在原有数据包进行注入(HTTP头部注入)。
请求方法讲解以及此类注入演示:17:00处猜某网站是何种请求方法:35:00处各种注入方法以及靶场位置(供自己练习–burp+watefox):44:00
123456789101112131415学习中遇到的问题:1 ...
SQL注入--MYSQL数据库注入
SQL注入学习笔记(二)–MYSQL数据库注入之数据注入MYSQL数据库结构–注意!!!这是MYSQL数据库的注入MYSQL数据库结构–step by step get 权限 数据库A=网站A(first step)=数据库普通用户A(若为root最高权限用户,可实现跨库) 表名(second) 列名(third) 数据(dourth) 数据库B=网站B=数据库普通用户A 表名 列名 数据 数据库C=网站C=数据库普通用户A 表名 列名 数据数据库A=网站A=数据库用户A ——>表名——>列名——>数据数据库B=网站B=数据库用户B ——>表名——>列名——>数据数据库C=网站C=数据库用户C ——>表名——>列名——>数据备注:这样的好处一个用户对应一个库、这样网站之间的数据互不干扰,当然这是最基础的数据库模型,现在大网站都是分布式数据库。
信息收集–便于后期选择何种方式进行数 ...
简单了解SQL注入原理,判断注入点
SQL注入学习笔记(一)–简单了解SQL注入原理,判断注入点SQL注入原理12345SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的sql服务器加以解析和执行。由于sql语句本身的多样性,以及可用于构造sql语句的编程方法很多,因此凡是构造sql语句的步骤均存在被攻击的潜在风险。Sql注入的方式主要是直接将代码插入参数中,这些参数会被置入sql命令中加以执行。间接的攻击方式是将恶意代码插入字符串中,之后将这些字符串保存到数据库的数据表中或将其当成元数据。当将存储的字符串置入动态sql命令中时,恶意代码就将被执行。
SQL注入产生过程1234大多数的web应用都需要与数据库进行交互,并且大多数web应用编程语言(如ASP、C##、.NET、Java和PHP)均提供了可编程的方法来与数据库连接并进行交互。如果web应用开发人员无法确保在将从web表单,cookie及输入参数等收到的值传递给sql查询(该查询在数据库服务器上执行)之前已经对其进行过验证,那么通常会出现sql注入漏洞,如果攻击者能够控制发送给sql查询的输入,并且能够操纵该输 ...