前言:命令执行和代码执行也是web安全中常见的一种漏洞,这次就先来学习一下命令执行漏洞。
Command Execution一、简介
由于开发人员在编写源代码时,没有对源代码中可执行的特殊函数入口做过滤,导致客户端可以提交一些cmd命令,并交由服务器程序执行。导致攻击者可以通过浏览器或者其他客户端软件提交一些cmd命令(或者bash命令)至服务器程序,服务器程序通过system、eval、exec等函数直接或者间接地调用cmd.exe执行攻击者提交的命令。
二、常用的连接符12345A;B 先执行A,再执行BA&B 简单拼接,A B之间无制约关系A|B 显示...
前言:在学习文件上传时,制作的图片马需要我们手动去解析,而解析的方法就算用到了文件包含漏洞,所以这次就来学习一下文件包含漏洞。
文件包含漏洞简介
(一)文件包含可以分为本地文件包含和远程文件包含两种。文件包含和文件上传一样本身并不是漏洞,而是攻击者利用了包含的特性加上了应用本身对文件控制不严格,对include进来的文件不可控,才导致了一系列危害。(二)本地文件包含就是通过URL将服务器本地的其他文件include进来。远程文件包含就是将远程服务器的文件include进来。(三)最主要的是,包含进来的文件都以当前脚本文件解析,例如,当前测试系统是Apache加php环境,那么被incl...
前言:之前在做密码学题的时候了解了一下RSA,但总感觉那时总结的过少,而且也理解的不到位,这次就再来详细的了解一下,并通过做题来巩固一下。
一、对称加密与非对称加密对称加密:
加密和解密用的是同一密钥,也是最简单、最快速的加密方式,通常使用的密匙相对较小,容易被破解,如果密钥过大,安全性确实可以得到保证,但同样加密和解密的效率将会很低。 因为双方都需要密钥进行加密解密,如果有一方的密钥泄露出去,整个安全性将不复存在,所以这也是对称加密的缺点。
非对称加密:
相较于对称加密,非对称加密使用两个密匙,即公开密钥和私钥密钥。非对称加密很有趣,公钥是任何人都可以请求得到的,但私钥只有一个人持...
前言:之前学习过了联合注入查询、布尔盲注、时间盲注等,这次就通过SQL注入题来加强一下。
简单的sql注入方法一输入有回显,且有输入框,那就可以用联合查询的方法来注入
题中提示已经过滤了一些关键字,那么就先来查看题中过滤的是哪些关键字
1?id=1 union select order by #
回显结果:union,select等都被过滤而且没有报错说明#也被过滤可以自己建立一个语句来验证一下如果#没有被过滤,那么上面的语句将会变成这样,语句一定会报错题中将关键字过滤,可以尝试一下双写绕过的方法是否可用输入框中输入?id=1 unionunion selectselect,发现空格也...
前言:上次文件上传漏洞学习到第十关,这次继续学习
第十一关分析源码前面几行代码都是对后缀名进行限制,最重要的就是这一句代码
1$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;
发现save_path用户是可控的,那么就利用%00截断来绕过
在此之前,先来了解一下截断上传的原理
在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束,而忽略后面上传的文件或图片,只上传截断前的文件或图片
可以通过一个例子详...
前言:文件上传漏洞有很多种绕过技巧,这次就通过upload-labs进行学习
第一关上传有限制,只让上传JPEG或PNG格式的图片,就先尝试一下抓包修改上传格式的方法看看是否可行
先将一句话木马PHP文件后缀名改为PNG格式,上传拦截抓包
拦截请求包后,将1.png改为1.php,再发包,用菜刀进行连接,在此之前需要知道上传的文件上传到哪个目录下,查看源码查出图片上传路径路径也知道了,就用菜刀进行连接连接成功观察一下第一关的源码1234567891011121314151617function checkFile() { var file = document.getEl...
前言:文件上传漏洞是很常见的漏洞,也非常有趣,接下来就在DVWA靶场中边学边练。
文件上传漏洞:
文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。
具体的原理可以看大师傅的讲解Smi1e_——文件上传漏洞 学习笔记文件上传漏洞
low级别观察源码
1234567891011121...
前言:上次学习到了if语句,这次接着进行学习。
字典
字典能够准确地为各种真实物体建模,且能够将相关信息关联起来。
使用字典
字典是一系列的键——值对,一个建对应一个值,值可以为数字、字符串等在Python中,字典用放在花括号{} 中的一系列键—值对表示。
访问字典中的值1234567score = {'shuxu':'80','yuwen':'90'}print(score['shuxu'])print(score['yuwen'])#输出结果:8090
添加键——值对
字典是一种动态结构,可随时在其中添加键—值对添加时值用方括号[]括起来
123456789...
前言:之前通过前九关学习到了回显注入、报错注入、布尔盲注等一些方法,这次就来详细的学习时间盲注。
在上一篇博客中,了解了布尔盲注,其实布尔盲注和时间盲注大致相同,注入原理是一致的,区别就是一个还是有回显的,一个彻底没有回显,通过构造语句,通过页面响应的时长,来判断信息,这就是时间盲注。
先来学习一下时间盲注所需要的函数123sleep()/延迟函数if(condition,true,false)/若条件为真 返回true,若条件为假 返回falsesubstring("string",strart,length)
主要的也就是这几个了,下面就通过sqli-labs第十关来练习时间盲注
猜...
前言:之前通过前九关学习到了回显注入、报错注入等一些方法,这次就来详细的学习布尔盲注。
首先来了解一下盲注的概念
盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。
布尔盲注
原理:注入的时候只会返回True和False,所以布尔盲注就是根据页面显示的是True还是False进行猜测数据库中的信息。
布尔盲注需要几个函数的辅助,就先来了解一下这几个函数1234length()函数可返回字符串的长度substring()函数可以截取字符串,可指定开始的位置和截取的长度ord()函数可以返回单个字符的ASCII码char()函数可将ASCII码转...