修改订单金额!?0.01 元购买 iPhoneX?| Web谈逻辑漏洞

必测的支付漏洞(一)使用fiddler篡改支付金额 互联网产品中常会遇到支付功能,测试人员测试这部分功能时一定要重视,因为如果这部分出现了较严重的bug,将会给公司带来不小的经济损失!如果你测出了问题领导也一定会高兴的!因此测试优先级很高,但具有一定难度,刚接触测试的小白们可能不知道支付功能有哪些测试点,作为同为小白的我,就与大家分享一下我学习并致用于工作中的成果吧!         今天这篇介绍一下支付功能的测试点之一——篡改支付金额。设想 阅读详情


本文来自作者 肖志华 在 GitChat 上分享 「Web 安全恩仇录:再谈逻辑漏洞」,「阅读原文」查看交流实录。

「文末高能」

编辑 | 哈比

Web 漏洞里有 SQL 注入、XSS 等漏洞,但是逻辑漏洞等问题也是一个大的关键点。

逻辑漏洞比传统安全漏洞更难发现,也可以理解为在相关的业务流程程序出了一个 BUG,当然开发者设计逻辑正常来走是没问题的,一旦用户不走寻常路,就导致了一些看似莫名其妙的漏洞存在。

俗话来讲就是,服务器大哥懵逼了,无法理解你的意思,按照开发者给他划定的业务流程来讲,你这个行为是错误了,引起了服务器大哥的暂时懵逼。

挖掘逻辑漏洞从来不走正常的业务流程,走正常业务流程发现不了什么安全漏洞,毕竟是按照指定的程序来走。要挖,就别走寻常路。

逻辑漏洞的阐述

逻辑漏洞呢,也分很多种。总的来说是产品业务上的设计缺陷,导致了某接口或者业务存在漏洞。从密码找回开始引入话题吧。

密码找回漏洞

一般密码找回这种业务流程在设计的时候,粗讲有五步。

  1. 输入账号

  2. 验证你的身份

  3. 获取重置密码的途径(邮件、密保问题)

  4. 验证成功

  5. 重置密码完成

按照这五步来走的话,漏洞通常会在 2~3 步骤里,下面来看一下常见的几种密码找回漏洞。

密码找回漏洞测试流程
  • 先尝试正确的密码找回流程,记录不同找回方式的所有数据包

  • 分析数据包,找到有效数据部分

  • 推测数据构造方法

  • 构造数据包验证猜测

挖掘逻辑漏洞的需要渗透测试人员不断的去修改请求参数来尝试触发漏洞,这种行为业内称之为 “Fuzz test” 模糊测试,重放数次请求来观察服务器返回响应,从而发现漏洞所在。

我也拿乌云的案例来讲密码找回的逻辑漏洞例程。

身份验证码暴力破解

案例之一:搜狐某站任意用户帐号重置密码缺陷

如何绕过加密传输抓包不表……点击忘记密码,链接:

https://passport.souyidai.com/password/findpassword

然后输入我们测试用的手机号,用户名就是手机号,然后点申请密码找回。

点击获取,然后输入 1111, 抓包递归尝试 9999,线程开到 10,加足马力!一两分钟的事,没有限制。

这是失败返回如上图。

这是正确返回:

{"data":" 成功 ","errorCode":0}

但是当我们输入对验证码,会被提示验证码错误,请重新获取。于是,思绪一转,可以在返回值,改成。

{"data":" 成功 ","errorCode":0}

这样就大功告成了!

结束了回想一下,完全可以不用暴力啊。只要有手机号,有多少我就重置多少,改参数就可以啦!

不知道算不算两个漏洞,哈哈。 这可是关乎钱的网站啊。

我的点评 
这个案例说明了该找回密码业务流程中,验证码这块可以爆破,甚至可以导致撞库的危害,修复建议是验证码尽量不要用 4 位,用数字 + 字母组合或者六位验证码。最好是设定了有效期限。

返回身份凭证信息

案例之二:天天网任意账号密码重置(非暴力温柔修改)

首先我们先来看一下找回密码的流程。

1. 填好邮箱和验证码 下一步

返回了邮箱。

2. 填写正确的验证码 抓包看一看

可以看到返回了一串加密字符串这个很重要,等会再说。经过测试证明 cookie 中的 值对找回密码没有影响。

3. 重置密码

可以看到 URL 中的 一串加密字符串正是 第二步中 返回的那串字符串。因为证明 cookie 中的 值对找回密码没有影响 所以只要拿到这个加密字符串就可以 任意重置密码。

那么怎么得到这个字符串呢?

这个是第二步中抓到的包 把 cookie 中的 LoginOrRegOftiantianUser 值 改成要重置的账号。这里我拿 service@tiantian.com 测试。

可以看到成功返回了加密字符串既然拿到了字符串,下一步就是重置密码了。首先输入邮箱和验证码,点击下一步,这一步是必须要做的,要不然不会成功。


然后直接用,拿到的字符串,访问重置密码的页面。假如,上一步没有做的话,到这一步会直接 302 跳转。

重置成功。

OK 密码被重置为 wooyun123

漏洞存在原因:页面返回了过多的信息,token 是可控的状态,导致拼接地址即可完成密码找回业务流程。

我的点评 
该漏洞存在的原因是,返回了过多的信息,导致 token 可控完成修改密码的工作流程。针对此类安全漏洞修复建议是 token 使用随机生成,攻击者无法猜解。

邮箱弱 token 安全漏洞

案例之三:360 任意用户密码修改(危急 360 手机卫士、360 云盘、360 浏览器云同步,可泄露通讯录、短信、通话记录等)

本小学生记性不好,360 账号的密码很及时的忘记了。 于是有了如下情节。找回账号密码, 然后发了一篇邮件到我邮箱。

http://i.360.cn/findpwd/setpwdfromemail?vc=e%2FwljiqD9WGv%2FwDyS93BghveGh%2FDYG4oMjJwcxGlcnSDZP3qIW4deYwnCpkdbCSZ3ByODXHZYDCx32A46l%2FBXxk6qo5oABIr6ZrywAoPB8DZuX81j%2Bb%2F2w%3D%3D&qid=507290669

这是修改密码的连接地址 有没有发现亮点?qid=507290669 qid 如果被修改别人的是否会有用呢?然后修改为:

http://i.360.cn/findpwd/setpwdfromemail?vc=e%2FwljiqD9WGv%2FwDyS93BghveGh%2FDYG4oMjJwcxGlcnSDZP3qIW4deYwnCpkdbCSZ3ByODXHZYDCx32A46l%2FBXxk6qo5oABIr6ZrywAoPB8DZuX81j%2Bb%2F2w%3D%3D&qid=507290670

然后 360 网站提示可以修改,哦的天啊。那这样的话不是所有的账号都可以改了 为什么会鸡肋呢?问题是不知道别人的账号啊,进去个人中心也没有这个 id 提示。

别着急,我们继续挖,发现 360 旗下的一个网站:

http://www.woxihuan.com/
http://www.woxihuan.com/star/timeline?qid=268296138

是不是发现了什么 ? 没错 qid=268296138。这个 qid 我们找的是明星苗圃的。

然后构造如下链接:

http://i.360.cn/findpwd/setpwdfromemail?vc=e%2FwljiqD9WGv%2FwDyS93BghveGh%2FDYG4oMjJwcxGlcnSDZP3qIW4deYwnCpkdbCSZ3ByODXHZYDCx32A46l%2FBXxk6qo5oABIr6ZrywAoPB8DZuX81j%2Bb%2F2w%3D%3D&qid=268296138

我们寄出神器 Burpsuite。在利用找回密码链接修改密码时我们截取它 post 的包:

而且这里还发现,我们在知道邮箱,不知道 qid 的情况下,也可以修改密码:首先用自己的账号获取一个 360 找回密码的 url,然后在修改密码时截包。

我们把这里的 uname 修改为要修改密码的目标的邮箱:

目标邮箱:410316816@qq.com

可以修改指定邮箱的密码,修改完成。

我的点评 
修改密码的链接上未对用户进行二次效验,修复方法是在参数里添加多个安全的验证参数来二次效验。

来分析一下以上案例中所存在的安全漏洞。

1. 邮箱找回密码的情况

网站收到了你的密码找回请求,会给你发一份邮件,里面包含了一个超链接,点击后就跳到修改密码的页面。

感谢您注册央视网! 请点击下面的链接完成注册,快乐畅游央视网和中国网络电视台! http://reg.cctv.com/regist/activationServlet.action?email=web@secus.org&code=579364fdb494ebfd12d0373e0afd26a5&userSeqId=57332762&from=http%3A%2F%2Freg.cctv.com&backurl=http%3A%2F%2Freg.cctv.com%2FforgetPassword%2FfindPassword.action 提示:如果链接无法点击,请将它复制到浏览器的地址栏中打开。 为确保帐号安全,链接 72 小时内有效,若链接失效,请点击这里


类似于以上的链接,这种需要分析一下 token 的构造了。

http://i.360.cn/findpwd/setpwdfromemail?vc=e%2FwljiqD9WGv%2FwDyS93BghveGh%2FDYG4oMjJwcxGlcnSDZP3qIW4deYwnCpkdbCSZ3ByODXHZYDCx32A46l%2FBXxk6qo5oABIr6ZrywAoPB8DZuX81j%2Bb%2F2w%3D%3D&qid=507290669

这里的这封邮件 qid=507290669 就可以看做是一个 ID 参数,构造了相应的链接时就可以重置任意用户的密码。

2. 手机短信找回

身份验证的方式是手机验证码,多 4 位和 6 位,可以采取爆破的方式,从 1-9999 进行列举也不会耗多少时间,有的验证码有效时间是为 30 分钟,足够让你随意枚举。

3. 找回密码逻辑缺陷

在找回密码的时候,用户 A 输入你自己的手机号码找回,收到了验证码不去使用:

  • 然后用户 A 去使用用户 B 的手机号来找回密码

  • 用户 A 在 B 的找回密码处填入刚刚自己收到的验证码

  • 程序验证成功,修改了 B 的用户密码

4. 找回密码逻辑缺陷 2

这种找回密码的逻辑缺陷多存在于以下场景。找回密码验证身份的页面 uid=1   验证成功进行修改密码的页面的 uid=2。直接在找回密码的页面访问验证成功进行修改的页面进行修改。

5. 本地验证的找回密码逻辑缺陷

在找回密码的时候,开 Burp 抓包,抓返回包,返回包里可能有一个 flag 字段,此时返回包的数据是-1,猜测若 flag 的值为 1 则跳转到修改密码的页面,所以只要修改一下 flag 值即可验证身份成功,进行更改密码操作。

验证码在 HTTP 请求里返回。点击获得验证码,有些代码逻辑不严,会把验证码发送到 HTTP 请求里,直接开 burp 捕获验证码即可。

6. HTML 源码

有时候一些验证身份的情况下,他的密保问题答案会出现在 HTML 源码里,你只需要打开 F12 进行查看。

到此,密码找回流程的逻辑漏洞已经概括了大多数了。

越权访问

越权访问也比较容易理解。越权访问通俗点来讲,就是你作为一个普通用户能够访问管理员用户才能访问到的资源。

越权也分水平越权和垂直越权。水平越权,即是相同级别的用户或者同一角色的不同用户之间,可以越权访问修改或者删除等重要功能。

比如我是一个论坛的会员 A ID 号为 2, 而你也是这个论坛的会员 B ID 号为 3, 我点击个人资料的时候,可以访问你的个人资料页面。

例如,http://www.gitbook.cn 提供了用户修改资料的功能,当访问 http://www.gitbook.cn /userinfo.action?id=2 时,将会显示自己的信息,并且可以编辑。

在这种情况下,用户 A 访问 的时候就会把 ID=3 的用户信息页面显示出来,这就是水平越权。通过枚举 id=? 可以造成论坛大量用户数据泄露的情况。

垂直越权就是普通用户可以访问只有管理员才能访问到的资源,比如,后台网站模块更改等。

来看个例子。

淘宝举报编号任意遍历

http://archer.taobao.com/myservice/report/report_detail.htm?gmtCreate=2013-02-23&id=[任意举报编号]

淘宝的这个漏洞就属于水平越权漏洞。

未授权访问

未授权访问可可有看做就是越权哈,也有这种情况作为一个游客能去访问一个网站根目录下的文件,比如数据库备份文件,直接访问 URL 下载。

支付漏洞

实战:一元购买 iPhone X 支付逻辑漏洞分析

前几天对一个电商网站进行了安全测试,发现存在支付逻辑漏洞,现分享渗透测试思路。

在选购了 iPhone X 的付款页面我进行了抓包,显示结果如上图所示。

POST /Admin/JScript/Common.ashx HTTP/1.1 Host: www.baidu.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0 Accept: */* Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: http://www.baidu.com Content-Length: 444 Cookie: _hcid=201712081311270935; pgv_pvid=1968087748; _current82664=Gi62U0hbBx8NrSPS4YuxQk%2fUfdHYO%3d%3d; __qc_wId=618; __qc__k=; _sids82664=23671; CheckedId82664=Gi62U0hbBl2td7IvA%3d%3d; _hsid=201712121125440516; _huid=201712121125440573 Connection: close (代码有删除)

在 POST 提交的数据中,CMD 那段,用了 URL 编码把我个人的收货地址,手机号姓名都传输了,同时推测 dataType=1,这里的 1 为商品数量 如果更改成-1 呢?

事实证明我想多了。

HTTP/1.1 200 OK Cache-Control: private Content-Length: 36 Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 X-Powered-By: ASP.NET Date: Tue, 12 Dec 2017 03:34:11 GMT Connection: close result":0,"msg":" 购物车为空 "}

修改为-1 后显示购物车为空。那么可以推断 1 为商品数量,因为我修改为-1 进行重放服务端显示购物车为空。

Fuzz test 测试的精髓就在把 HTTP 的请求包参数进行各种更改,然后重放数次看响应即可。

不过这里我只想让这台价值八千的 iPhone X 变成 0.01 购买,那么我们放包,进入支付页面。

在付款页面来了,需要支付 8150 人民币,但账户里并没有那么多钱,我们使用微信支付来试一试。

在点击微信支付后再次抓包,返回信息为:

cmd=UserGoPay&group=order&dataType=1&id=14869&payWay=4&onlineMoney=8150.00&payPwd=

8150.00 就是金额,那么我们尝试一下进行更改。

更改成 0.01 后,重放请求显示:

HTTP/1.1 200 OK Cache-Control: private Content-Length: 51 Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 X-Powered-By: ASP.NET Date: Tue, 12 Dec 2017 03:42:04 GMT Connection: close {"result":0,"msg":" 请输入有效的支付密码 "}

Nice,需要支付密码,猜测程序员未做金额效验。

PayMoney=8150.00&OrderId=14869&OrderType=1&PayType=67

截获的请求包就是这串 paymoney=8150.00  猜测可控,进行更改 0.01,修改后放包,OK 返回了微信扫描付款截图页面。手机扫码支付成功。

不做修改的请求页面,一台 iPhone X+MacBook 共计 22886.00 人民币:

进行金额修改后,0.01 元可支付。

购买支付完成。

后台支付成功,进入代发货状态。

该漏洞存在的最大原因就是,程序员未做金额效验,服务端未进行效验,导致了本地金额可控,从而实现 0.01 元购买 iPhone X 逻辑漏洞

攻击者通过修改交易金额,交易数量等从而实现漏洞的利用,比如像我上文所讲,把金额或者商品修改为负数、无限大,但我进行测试的时候,发现金额负数微信付款二维码是弹不出来的。

因为价格是 0,程序不作支付返回,只能从自己账户里的金额进行 Fuzz 测试。

支付流程逻辑漏洞总结:

支付逻辑漏洞还总的来说存在以下几种情况:

  1. 支付的时候修改金额,从而实现小金额购买大金额商品,比如我;

  2. 购买商品数量为无限大,使程序出现错误,实现 0 金额购买;

  3. 购买商品数量为负数,使程序出错,实现越买钱越多这种情况。

文件上传逻辑漏洞

文件上传漏洞可以 参考一篇文章(http://www.voidcn.com/article/p-psygixsk-rv.html),总结的非常棒,我直接贴地址过来了,换我来讲也许还没对方写的好,所以就不阐述了。

记住最重要的最安全的防攻击者绕过是白名单验证,而不是文件类型验证,也不是黑名单验证。

Web 开发中的逻辑漏洞总结

所以在 Web 开发中,存在逻辑漏洞总结几点下来就是:

  1. 订单金额任意修改

  2. 验证码传了本地

  3. 未进行登陆验证,导致未授权访问

  4. ID 号枚举

  5. Cookie 设计缺陷

  6. 水平越权

  7. 垂直越权

  8. 找回密码逻辑漏洞

  9. 验证码爆破

  10. 文件上传漏洞

以上几个案例基本都囊括了这所有的内容,故此不再进行举例。逻辑漏洞是程序开发者和渗透测试人员必须要留意的地方。

近期热文

《接口测试工具 Postman 使用实践》

《如何基于 Redis 构建应用程序组件》

《深度学习在摄影技术中的应用与发展》

《这样做,你的面试成功率将达到 90%》

《如何用 TensorFlow 让一切看起来更美?》

《Web 安全:前端攻击 XSS 深入解析》


「阅读原文」看交流实录,你想知道的都在这里

fiddler修改支付金额_支付漏洞总结 请注意,本文编写于 113 天前,最后修改于 104 天前,其中某些信息可能已经过时。快捷支付原理商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知浏览器跳转基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了页面,并未等待银行跳转到支付结果页面,那么商户网站就收不到支付结果的通知,导致支付结果难以处理。而且浏览器端数据很容易被篡改而降低安全性... 阅读详情

相关推荐

在线支付安全-业务安全测试实操(35)

步骤一:登录某快餐连锁官网,选择快餐后,显示要支付的金额46元,在Chrome浏览器中,按 F12 快捷键,在浏览器下方弹出开发者工具,选择最左侧的箭头,如图 所示。·通过数据类型判断正确后,同时判断商城库存对应商品的剩余量,如果剩余量低于商品的购买数量,则直接提示错误信息,让客户修正。在服务器端判断提交商品ID中数量参数值不低于0,如果数量参数值低于0,则直接提示错误信息,让客户修正。在服务器端判断订单中运费参数值不低于0,如运费参数值低于0,则直接提示错误信息,让客户修正。将订单中的商品价格封装为。

AI 1160

一次不一样的0.01元买上千元物品

本文作者:i春秋签约作家——rosectow 文章做一个支付逻辑复现过程,由于网站只能修改数量无法修改金额,遇到这种,就用另外的办法来减少金额测试,注:标题狗 0×01 打开网站,找到了一款网站中比较贵的手表,价值是5800块钱,网站看起来没什么毛病,网站也是很正常的 我测试了立即购买的时候进行抓包,发现可以修改数量但是无法修改金额,我测试了把数量修改成负数的 一直下一步...

dfdhxb995397的博客 264

别再只盯着MES了!半导体/面板厂CIM系统全家桶(EAP/YMS/SPC)保姆级入门指南

本文深入解析半导体制造中的CIM系统,涵盖EAP、YMS和SPC等关键子系统的协同工作。通过实战案例和技术细节,展示如何利用CIM系统提升生产效率、良率管理和设备维护,为半导体/面板厂提供全面的实施指南和优化策略。

weixin_33693070的博客 464

RDS MySQL和Mongodb 物理备份文件.xb恢复到自建数据库

一:准备环境 1:已经有了RDS的.xb文件,如未有,请参考此连接 2:已经搭建好自建数据库,如果未有,请参考此连接其中mysql搭建方式 Centos7安装percona-xtrabackup2.4和8.0版本 a cat /mnt/software/practice_qp_2021.xb | xbstream -x -v -C /mnt/lzx/mysql/data .........

李指导的博客 6980

Lumerical Python API实战指南(一)——从数据优化到自动化工作流

本文是Lumerical Python API实战指南,旨在帮助用户从繁琐的手动仿真操作转向智能自动化工作流。文章详细介绍了API环境的零基础搭建、核心操作(会话管理、命令执行与数据交换),并通过参数扫描与自动化分析流水线的实战案例,展示了如何利用Python脚本实现从数据优化到自动化仿真的全过程,显著提升光子设计效率。

xxx12的博客 567

MATLAB实战:5分钟搞定雷达信号分选SDIF算法(附完整源码下载)

本文详细介绍了如何在MATLAB中快速实现雷达信号分选的SDIF算法,通过序列差直方图统计高效识别脉冲重复间隔(PRI)。文章包含完整源码下载,从算法原理到实战调优技巧,帮助工程师在5分钟内掌握核心实现方法,显著提升雷达信号处理效率。

info6的博客 614

Apple Pay移动支付也不安全?交易可被窃听篡改

本文讲的是Apple Pay移动支付也不安全?交易可被窃听篡改, 在Blach Hat会议上,Positive Technologies的安全研究人员宣布,现在可以利用Apple Pay移动支付中存在的漏洞来发动攻击。Positive Technologies称已经发现了两个潜在的攻击媒介。 银行技术业务安全负责人Timur Yunusov说,相比较...

weixin_33755649的博客 307

C# WPF多页面间的数据共享(经典)

实现页面间的数据共享有很多方法,比如:①事件的发布订阅 ②委托③ioc容器④静态类等,这节主要通过静态的集合实现数据的添加和获取。

sf315418的博客 639

业务逻辑漏洞——1块钱买手机

思路:在提交订单的页面修改金额,或者商品数量 靶机:win2k8+phpstudy+“大米CMS” 攻击机:Burpuite 1:首先注册一个账号 然后访问账户,发现自己没钱 2:修改后台数据,先给自己来1块钱,开局 再来确认一下,张三果然有了1块钱 3:选购商品 4:开启BurpSuite抓包,并提交订单,把金额修改为1 看样子修改金额的方案是失败了 使用备用方案,修改商品数量为-1 5:停止Burp抓包,检查一下账户 看到下单成功 并且网站还倒贴我一部手机钱 补充:这里主要是想多演示

LainWith的博客 1156

unity转微信小游戏:UI大小设置

unity转微信小游戏:UI大小设置

会潜水的小火龙的博客 3273

2026年9月20日 2026年CSP-S初赛真题整理

这是本次考试最难的部分,涉及Gray Code(格雷码)+ 状态压缩 + 数学推导难点解决方案关键代码问题转化将得分差转化为m−2xim - 2x[i]m−2xi高效枚举Gray Code相邻状态O(1)转移奇偶判断利用奇偶性统一条件。

weixin_51184047的博客 629

Java打印输出:8x8x

Java打印输出数据println和print打印输出数据,System.out.println System.out.println("8x8x");//8x8x System.out.println("8x8x");//8x8x在线天堂 System.out.println("hello world!!!");//输出数据并换行

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 69万+

02-Redis 核心特性与数据结构详解:揭秘高性能的技术内核

本文深度拆解 Redis 高性能的技术内核:揭秘其凭“内存存储 + C 语言开发” 实现微秒级延迟、10 万 + QPS 的性能优势;详解 5 种基础数据类型(String/Hash 等)与 4 种扩展数据类型(Stream/Geospatial 等)的特性及场景;还介绍多语言支持、RDB/AOF 持久化、主从复制 / 哨兵 / 集群等高可用方案,助读者掌握 Redis 技术核心与实践逻辑。

蜗牛老师,专注编程领域 996

漏洞挖掘 | 某医院小程序支付漏洞+越权

漏洞挖掘 | 某医院小程序支付漏洞+越权

lza20001103的博客 619

低功耗设计-Power Switch

power gating与power switch cell

m0_61544122的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

mysql xf0x9fx8ex88_php 解决MySQL插入数据出现 Incorrect string value: 'xF0x9Fx92x8BTi...'错误_P...

php 解决MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误在项目中向MySQL插入数据时,发现数据插入不完整,通过调试,发现插入语句也没什么特殊的错误。但是就是差不进去,于是就打开mysqli错误的调试$ret = mysqli_query($this->conn, $sql) or die(mysqli_error...

weixin_27070451的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

电脑主板资料库 03【转至www.ongood.com.tw】【FreeXploiT收集整理】

MB(主機版)資料 第三頁AOpen 主機板命名規則(取自AOpen原廠網頁資料)  最近更新: 2003/8/29  淺談新一代匯流排架構 ─ PCI Express(轉貼自聯強信件)   當 CPU 處理外部資料的速度越來越快時,PC 晶片組開發廠商也慢慢發現到周邊裝置的資料傳輸頻寬已開始不敷使用。而 PC 的周邊擴充介面也隨著CPU速度的提昇,從早期的 8bit/16bit ISA,演進出

FreeXploiT 6万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

fiddler抓包修改金额_第二十七课 如何抓包?(助你更好地使用HTTP请求组件)...

大家好,继第二十六课 - 汇率查询(http请求的应用)后,这节课我们继续讲讲有关HTTP请求的内容。从标题可知,本节课会着重讲解如何抓包,从而在云扩RPA中使用HTTP请求时会更加得心应手。准备工作:1)准备开发流程的电脑,请打开云扩学院链接查看云扩RPA编辑器运行的硬件&软件要求(https://academy.encoo.com/wiki/Studio/qu...

weixin_39879665的博客 2042

​XgRiNdA 支持iOS14.4beta 完美重启!

XgRiNdA 支持12.3-14.4Beta 支持iPhone/iPad绕过hello激活锁界面,支持MEID三网通手机绕过当游戏机! 工具优点: 支持三网(带有MEID)设备 绕过当游戏机玩 可登陆ID AppStore 消息推送重启(不能打电话) 支持两网(GSM)设备绕过 可以打电话 上网 4G 付费的!8美金即可拥有全部功能! 12.29更新如下: 新增无基带设备绕过 运营商解锁 通知修复功能 主要是免费 不香嘛! XG所需工具: Dokan插件 一件删除基带工具Windo...

CYDIAME的博客 7392

Docker

8.1 总体步骤1搜索镜像2拉取镜像3查看镜像4启动镜像 - 服务端口映射5停止容器6移除容器8.2 安装tomcat1docker hub上面查找tomcat镜像2从docker hub上拉取tomcat镜像到本地3docker images查看是否有拉取到的tomcat4使用tomcat镜像创建容器实例(也叫运行镜像)docker exec -it 主机id /bin/bash-p 小写,主机端口:docker容器端口-P 大写,随机分配端口-i 交互。

m0_66052129的博客 7917

乱码大全

<br /> 很久很久以前我转载过的一篇文章,这篇文章很大程度帮助了我。后来曾一度删除,但是发现很不方便,所以还是再次拷贝过来以备查阅。<br /> 发信人: bluesea (蓝海), 信区: Internet<br /> 标 题: 乱码大全(1)──综述(第二版)<br /> 发信站: BBS 水木清华站 (Sun Feb 15 15:54:37 1998)<br /><br /> 乱码大全(1)──综述(第二版)<br /><br /> 本文第一版本于98年2月3日发于本板。这一版本修改了原

23万+

DataX

DataX的环境搭建以及简单测试 什么是DataX DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、 HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 (这是一个单机多任务的ETL工具) 下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz 一、前置条件   JDK(1.8以上,推荐1.8)   Python(

程序工厂 5329

python创意小作品懒羊羊,python创意小作品中学生

大家好,小编来为大家解答以下问题,python创意小作品100行代码左右,python创意小作品懒羊羊,现在让我们一起来看看吧!这篇文章主要介绍了python创意小作品100行代码左右,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。🥬🥬🥬1 炫酷彩虹2 温柔的狮子3 旋转无尽的真心4 520+爱心5 鲜艳的玫瑰6 一颗小爱心7 一个呆萌的皮卡丘8 小猪佩奇9 放烟花10 小呆呆小黄人11 十里桃花飘落12 炸死小坏蛋。

降AIGC工具 3879

NFTScan | 02.26~03.03 NFT 市场热点汇总

目前 NFTScan 数据显示,Pudgy Penguins 目前地板价稳定在 16.04 ETH,最高成交价 420 ETH,7d 交易额为 6.6k ETH 左右,目前以太坊上总交易额已超 337.2k ETH,过去 7 天交易分布主要为 Blur: 6.15k(92.63%),Opensea: 488.86(7.37%)单位 ETH,7d 交易笔数高达 412 次。3 月 3 日,官方数据显示,ZKFair ERC404 NFT CyberArmy 地板价突破 140 USDC,创历史新高。

NFT_Research的博客 3447

CentOS 7.3 Kubernetes 1.18.6 安装实战手册

CentOS 7.3 Kubernetes 1.18.6 安装实战手册 https://blog.csdn.net/jaccheu/article/details/104556606 https://www.jianshu.com/p/32ccb9abdf88 环境装备: 三台 主机,OS:CentOS 7.3 如安装过需要按如下方法清空环境 kubeadm reset -f modprobe -r ipip lsmod rm -rf ~/.kube/ rm -rf /etc/ku

apple613的专栏 1万+

nginx r日志中午出现\xE5\x88\x98\xE4\xB8\x96\xE5\xA5\x87

参考文档:   https://www.cnblogs.com/hark0623/p/5715726.html   https://www.cnblogs.com/fqfanqi/p/7900758.html public class App { public static String str2Hex(String str) throws UnsupportedEnco...

weixin_30929195的博客 1万+
上一篇: Service Mesh 在华为公有云的实践
下一篇: Java 工程师如何得到一个好 Offer
软件供应链安全
软件供应链安全 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 347原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值