submit

手动SQL注入-Post请求

别等时光非礼了梦想. 提交于 2020-03-22 22:30:49
3 月,跳不动了?>>> Burpsuite介绍 Burpsuite是一款基于Java语言开发的Web安全测试利器几乎集成了Web安全测试中需要的所有功能。 Burpsuite使用 1、火狐浏览器选择“手动代理配置”并配置代理地址为127.0.0.1端口默认是8080,点击为所有协议使用相同代理服务器。 2、启动Burpsuite 3、在BurpSuite界面中点击“Proxy”->“Options“设置代理 4、在BurpSuite界面中点击“Proxy”->“Intercept“,默认intercept功能是启动的。如果intercept is Off表示关闭,点击一下即可启动。 5、BurpSuite界面中点击Forward放行数据包,点击Drop丢弃数据包。 Burpsuite截获请求 1、在BurpSuite界面中点击“Proxy”->“Intercept“ 2、火狐浏览器访问 http://192.168.1.64/sqli-labs/ 页面 3、截获请求信息 SQL报错 POST方式联合查询 1、启动Burpsuite截获请求 2、burpsuite对数据包进行修改,空白处点击右键选择Send to Repeater。Repeater是靠手动操作发送单独的HTTP请求,并可以随时多次分析应用程序响应的工具。 其中&并非是SQL语句中的&,只是HTTP 请求包格式

Callable、Future和FutureTask

混江龙づ霸主 提交于 2020-03-17 12:30:05
某厂面试归来,发现自己落伍了!>>> 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。 #CountDownLatch用法 先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法: public interface Runnable { public abstract void run(); } 由于run()方法返回值为void类型,所以在执行完任务之后无法返回任何结果。 Callable位于java.util.concurrent包下,它也是一个接口,在它里面也只声明了一个方法,只不过这个方法叫做call(): public interface Callable<V> { /** * Computes a result, or throws an exception if unable to do so. * * @return computed result * @throws Exception if unable to compute a result */ V call() throws Exception; }

线程池(一)

泪湿孤枕 提交于 2020-03-16 12:39:37
Executor 线程池顶级接口。定义方法,void execute (Runnable)。方法调用者提供Runnable接口的实现,线程池通过线程执行这个Runnable。服务方法无返回值的,是Runnable接口中的run方法无返回值。 作用是: 启动线程任务的。 ExecutorService Executor接口的子接口。提供了一个新的服务方法,submit。有返回值(Future类型)。submit方法提供了overload方法。其中有参数类型为Runnable的,不需要提供返回值的;有参数类型为Callable,可以提供线程执行后的返回值。 - void execute(Runnable), Future submit(Callable), Future submit(Runnable) Future 未来结果,代表线程任务执行结束后的结果。 获取线程执行结果的方式是通过get方法获取的。get无参,阻塞等待线程执行结束,并得到结果。get有参,阻塞固定时长,等待线程执行结束后的结果,如果在阻塞时长范围内,线程未执行结束,抛出异常。 常用方法: T get() T get(long, TimeUnit) Callable 可执行接口。 类似Runnable接口。也是可以启动一个线程的接口。其中定义的方法是call

ajax与文件上传

爷,独闯天下 提交于 2020-03-11 16:43:05
  一、ajax   ajax(Asynchronous JavaScript And XML):异步JavaScript和XML,即使用JavaScript语句与服务器进行异步交互,传输的数据为XML(也可以是json数据)。实际上就是在JavaScript语句里用ajax可以向服务器发送请求。   两大特点:   1,异步交互   2,页面局部刷新   语法: 基于jQuery:<script>$('.cc').click(function(){ #当我们点击‘.cc’这个类的时候就会触发ajax请求 $.ajax({ url:'/name/', #请求的路径 type:'post', #请求的方式 data:{csrfmiddlewaretoken:$('[name="csrfmiddlewaretoken"]').val(),user:$('[name="user"]').val()}, #请求的数据 success:function (data) { #这是请求成功后的回调函数 if (data.name){ $('.c1').html('用户名已存在'); $('.login').addClass('hide') } } }) }); </script>   1,基于ajax请求的注册页面   1.1 register.html <!DOCTYPE html>

sqlmap介绍与使用案例

六眼飞鱼酱① 提交于 2020-03-08 09:14:31
1.sqlmap简介 最白话的介绍就是sqlmap是一个工具,一个用来做sql注入攻击的工具 2.windows安装python2 这个sqlmap需要python2才可以正常执行,注意python3不行哦,如果你已经安装了python3,本地同时安装python2和python3,需要注意修改其中一个python执行文件的名字,以便在path中添加环境变量的时候,可以正确区分,详细这里不进行赘述,如果不了解,建议自行百度。 windows安装sqlmap 3.1 下载压缩包 在sqlmap的网站上下载对应的压缩文件 http://sqlmap.org/ 3.2 解压文件 解压到任意文件夹皆可 解压以后大概是这个样子的 之后就是要执行这个sqlmap.py的文件 3.3 启动一个命令行,执行sqlmap.py 如果出现这个界面,表示一切正常 按任意键结束 4. 测试sqlmap功能 4.1 使用DVWA测试网站 4.1.1 关于dvwa 这个网站有sql漏洞,专门拿来测试用,不知道是哪位好心人搞出来的 网址是:http://43.247.91.228:81/login.php 登陆的用户名密码是:admin/password 4.1.2 操作 首先登陆成功以后三步走,拿到需要的url image.png 拿到url以后,就可以使用这个url来注入了 python2 sqlmap

Vue 是什么?

一笑奈何 提交于 2020-03-06 20:41:07
Vue 是什么? Vue (读音 /vjuː/,类似于 view ) 是一套用于构建用户界面的渐进式框架 vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合 使用Vue将helloworld 渲染到页面上 指令 本质就是自定义属性 Vue中指定都是以 v- 开头 v-cloak 防止页面加载时出现闪烁问题 <style type="text/css"> /* 1、通过属性选择器 选择到 带有属性 v-cloak的标签 让他隐藏 */ [v-cloak]{ /* 元素隐藏 */ display: none; } </style> <body> <div id="app"> <!-- 2、 让带有插值 语法的 添加 v-cloak 属性 在 数据渲染完场之后,v-cloak 属性会被自动去除, v-cloak一旦移除也就是没有这个属性了 属性选择器就选择不到该标签 也就是对应的标签会变为可见 --> <div v-cloak >{{msg}}</div> </div> <script type="text/javascript" src="js/vue.js"></script> <script type="text/javascript"> var vm = new Vue({ // el 指定元素 id 是 app 的元素 el: '#app', //

Angular指令

大憨熊 提交于 2020-03-05 16:50:45
一、指令 基础指令 1、ng-disabled 使用ng-disabled可以把disabled属性绑定到以下表单输入字段上: <input> ( text、 checkbox、 radio、 number、 url , email 、 submit); <textarea> ; <select> ; <button> 。 案例1: <input type="text" ng-disabled="true" placeholder="TypetoEnable"> 在下面的例子,文本字段会被禁用五秒,直到在$timeout中将isDisabled属性设置为true: <textarea ng-disabled="isDisabled">Wait5seconds</textarea> angular.module('myApp', []) .run(function($rootScope, $timeout) { $rootScope.isDisabled = true; $timeout(function() { $rootScope.isDisabled = false; }, 5000); }); 2、ng-select 用来将数据同HTML的<select> 元素进行绑定。这个指令可以和ng-model 以及ng-options指令一同使用,构建精细且表现优良的动态表单。 3

php防止重复提交问题总结

佐手、 提交于 2020-03-05 08:06:29
用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题。我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交。 1.使用客户端脚本 提到客户端脚本,经常使用的是JavaScript进行常规输入验证。在下面的例子中,我们使用它处理表单的重复提交问题,请看下面的代码: <form method="post" name="register" action="test.php" enctype="multipart/form-data"> <input name="text" type="text" id="text" /> <input name="cont" value="提交" type="button" onClick="document.register.cont.value='正在提交,请等待...'; document.register.cont.disabled=true;document.the_form.submit();"> </form> 当用户单击“提交”按钮后,该按钮将变为灰色不可用状态。 上面的例子中使用OnClick事件检测用户的提交状态,如果单击了“提交”按钮,该按钮立即置为失效状态,用户不能单击按钮再次提交。 还有一个方法,也是利用JavaScript的功能,但是使用的是OnSubmit(

python之线程

大憨熊 提交于 2020-03-02 04:01:09
什么是线程? 线程是CPU上的执行单位。 线程和进程的区别 1、进程是资源的集合,是一个资源单位。线程是CPU上是执行单位。所以开进程开销与远大于开线程 2、进程单独开辟内存空间。同一个进程内多线程共享同一个内存空间 a = 100 def task(): global a a = 0 if __name__ == '__main__': # p = Process(target=task, ) # p.start() # p.join() # print(a) # 100 t = Thread(target=task, ) t.start() t.join() print(a) # 0 3、开多个进程,每个进程有不同的pid。在主进程下开启多个线程,每个线程的pid和主进程的pid一样 Thread对象的其他用法 from threading import Thread, current_thread, active_count, enumerate import time def task(): print("子进程", current_thread().getName(), current_thread().name) # current_thread().getName() == current_thread().name time.sleep(2) if __name__

sql-lab闯关之13-16

丶灬走出姿态 提交于 2020-03-01 22:02:48
LESS13 通过尝试我们发现,在13关没有像12关那种回显,只有登陆成功与否的显示。 12关的回显 13关登录成功提示 紧接着还是通过burp拿到数据包,这次我就不演示了。 uname=admin'&passwd=admin&submit=Submit 接下来我们构造注入语句 我们通过这几种判断参数格式 ’ ’) ’)) ” ”) ”)) 输入:uname=n') or 1=1#&passwd=admin&submit=Submit 我们可以看到登陆成功了(我就不一一测试了) 格式就是第二种 接下来我们通过猜列数 输入:uname=n') order by 2#&passwd=admin&submit=Submit 因为没有回显,我们考虑使用布尔盲注或者时间盲注。 输入:uname=n') or if(length(database())=8,1,sleep(5))#&passwd=admin&submit=Submit 这个语句使用了 if 和length函数,前面的文章有讲过如何使用。 以此判断数据库名的长度。如果数据库名字长度为8则很快加载完毕,否则加载5s 可以更改 > < 通过2分法判断,这里我直接演示,不浪费时间了就。 可以看到成功了 根据返回时间判断数据库名字长度为8 接下来我们使用left函数猜测数据库名字具体为什么。 输入:uname=n') or left