Learn : http://www.w3school.com.cn/xpath/index.asp

Simple note

Xpath is a languaga to find information in XML.

There are knowledge too much, I don’t want to copy.

Chose node:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bookstore		chose all children_parameters.
/bookstore chose root element bookstore.
/bookstore/book chose all children_paremeters named "root" of bookstore.
//book chose all children_parameters no matter where they are.
bookstore//book chose all children_paremeters named "root" of bookstore no matter where they are.
//@lang chose all attribute named "lang".

/bookstore/book[1]
/bookstore/book[last()]
/bookstore/book[last()-1]
/bookstore/book[position()<3]
//title[@lang]
//title[@lang='eng']
/bookstore/book[price>35.00]
/bookstore/book[price>35.00]/title

* ALL node.
@* ALL node which have any attribute.
node() ALL type of node.

//book/title | //book/price
//title | //price
/bookstore/book/title | //price

USE:

1
2
3
4
5
var xmlDoc=new XMLHttpRequest()

Chose nodes:
IE : xmlDoc.selectNodes(xpath);
Other : xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);
Weiterlesen »

Learn:http://www.w3school.com.cn/xml/xml_intro.asp

Simple note:

XML

A simple example of XML:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="ISO-8859-1 ?>
<skate>
<people grade="four">
<name>azhu</name>
<high> three board </high>
</people>
<people grade="one">
<name>threezhi</name>
<high> three board </high>
</people>
</skate>

`<!-- You should avoid use attribute of XML. -->`

In XML, there are five predefined entity reference(实体引用):

1
2
3
4
5
&lt;	<
&gt; >
&amp; &
&apos; '
&quot; "
Weiterlesen »

第一章,部署虚拟环境安装Linux系统

RPM(红帽软件包管理器)

常用命令:

1
2
3
4
5
6
安装软件		rpm -ivh filename.rpm
升级软件 rpm -Uvh filename.rpm
卸载软件 rpm -e filename.rpm
查询软件描述信息 rpm -qpi filename.rpm
列出软件文件信息 rpm -qpi filename.rpm
查询文件属于哪个RPM rpm -qf filename.rpm

Yum软件仓库

常用Yum命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
yum repolist all			列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 移除软件包
yum clean all 移除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询指定的软件包组信息
Weiterlesen »

更多信息可以到文章内细看,这里只做简要记录。

浏览器如何工作:

浏览器的主要功能:

通过从服务器请求并在浏览器窗口中显示它来显示您选择的Web资源。资源的位置由用户使用URI(统一资源标识符)指定。

浏览器的主要组件:

  1. 用户界面
  2. 浏览器引擎 - 用于查询和操作渲染引擎的界面。
  3. 渲染引擎 - 负责显示请求的内容。如解析HTML和CSS并在屏幕上显示解析的内容。
  4. 网络 - 用于网络呼叫,如HTTP请求。它具有平台独立接口和每个平台的底层实现。
  5. UI后端 - 用于绘制组合框和窗口等基本小部件。它公开了一个非平台特定的通用接口。它下面使用操作系统用户界面方法。
  6. JavaScript解释器。用于解析和执行JavaScript代码。
  7. 数据存储。这是一个持久层。浏览器需要保存硬盘上的各种数据,例如cookie。新的HTML规范(HTML5)定义了“web数据库”,它是浏览器中一个完整的(尽管很轻的)数据库。

例图

Weiterlesen »

Open redirect

Simple note:

If you meet a url like http://127.0.0.1/index.php?url=http://www.baidu.com, when it is turned on, you will be redirected to another URL.
When the we can contral the url, there is a Open redirect vulnerability.(Of course , the vulnerability base on the url redirect is harmful to the website.)

Bypass:

Most of the url of redirect will be filter.So the most important thing is to bypass the filter.

  • @

    http://127.0.0.1@baidu.com => https://www.baidu.com/

  • ?

    https://baidu.com => https://anysite/?baidu.com

    When the filter will check the tail of the url, then we can use this to bypass.

  • Anchor point(锚点)

    http://127.0.0.1/#baidu.com

    Behind the # will be seen as the anchor of the web page.

  • xip.io

    xip.io provides wildcard(通配符) DNS for any IP address.

    1
    2
    3
    4
    10.0.0.1.xip.io   resolves to   10.0.0.1
    www.10.0.0.1.xip.io resolves to 10.0.0.1
    mysite.10.0.0.1.xip.io resolves to 10.0.0.1
    foo.bar.10.0.0.1.xip.io resolves to 10.0.0.1

    http://www.baidu.com.127.0.0.1.xip.io/ => 127.0.0.1

  • \

    http://www.baidu.com/index.php?url=http:/\baidu.com

    Chrome characteristic (All will redirect to baidu.com):

    1
    2
    3
    4
    http:/\/baidu.com
    http:\//baidu.com
    /\/baidu.com
    http:\\\//baidu.com

    It can bypass some filters.

  • Change IP

    Change your url to a IP , maybe can bypass the filter.

    Try to use IPv6, IPv4 in decimal(十进制), hex, octal(八进制)

  • Extension checked?

    If extension checked, try ?image_url={payload}/.jpg

  • Strange way:

    Domain spoofing in redirect page using RTLO

Weiterlesen »

JavaScript

Hello World.
Go to a new world again.

Begin

The first program:

1
2
3
4
setTimeout(wakeUpUser, 5000)
function wakeUpUser(){
alert("Yep! love you!!! honny.")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var skater;
var age = 20;
var name = "threezh1";
var isBoy = ture/false;
//This will not show for others.

document.write("Hello World.");

console.log("Just like history?");

<script src="mycode.js"></script>

GetUserEnter = prompt("Please enter whatever you want to say!");
document.write(GetUserEnter);

//Get a random.This will return a number in (0~1)
var randomLoc = Math.random();
//If you want get a number in (0~5 haven't 5 like 4.999...)
var randomLoc = Math.random() * 5;
//Get a complete number:
var randomLoc = Math.floor(Math.random() * 5);
Weiterlesen »

XSS输出点(简要笔记):

HTML标签之间

例如: <div>[输出]</div> 直接提交:<script>alert(1)</script>

当标签是不能执行脚本的标签时,就得先把那个标签闭合,然后再注入XSS语句。

例如:</textarea><script>alert(1)</script>

HTML标签之内

例如:<input type="text" value="[输出]"/>

两种常见的情况:

- 闭合属性,然后用事件来触发脚本: `" onmouseover=alert(1) x="`
- 闭合属性后闭合标签,然后直接执行脚本: `"><script>alert(1)</script>`

常见未被过滤事件,更多的事件在附录部分:

1
2
3
4
5
6
ontoggle
onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel

当输出点在src/href/action等属性内时: <a href="[输出]">click me </a>,
除了闭合属性或标签外还可以使用javascript伪协议:javascript:alert(1)// (//是用于注释后面的js语句)

此外,还可以使用data协议data:text/html;base64 (data:协议的必须作为整个属性值出现,IE不支持)

data协议例子:(尝试了一下,弹不了)

  • http://example.com/text.php?t="><script src="data:text/html,JTNDc2NyaXB0JTNFYWxlcnQlMjglMjJYc3MlMjIlMjklM0Mvc2NyaXB0JTNFJTNDJTIxLS0=
  • <a href=data:text/html;base64,PHNjcmlwdD5hbGVydCgzKTwvc2NyaXB0Pg==>test</a>

还有xlink:href协议:<a xlink:href="javascript:alert(14)">

常见利用标签:

a
img
input
svg
body
html
embed
script
object
details
isindex
iframe
audio
video

标签事件合集

Weiterlesen »

漏洞分析:

思路

  1. 在Typecho_Cookie::get()方法中通过POST或者设置COOKIE的方法设置_typecho_config进行反序列化。
  2. 在序列化当中把adapter设置为一个类,导致页面执行代码时触发_toString()魔术方法。
  3. 在序列化当中设置$item令其没有screenName属性,导致在触发_toString()魔术方法的时候触发_get()魔术方法。
  4. 通过反序列化间接控制$this->_filter的值,利用array_map(),call_user_func()执行恶意代码。

可知,在利用漏洞的过程中,最终是要利用_toString(),_get()等魔术方法构造一个POC链,最终执行恶意代码

Weiterlesen »

题目地址:http://47.107.232.77:49882/
打开后是一个公司的登录地址,试着用admin,admin登录一下。

返回错误:
Fatal error: Call to a member function fetch_assoc() on a non-object in /usr/share/nginx/html/login.php on line 15

登录框下面还有一个网址:http://47.107.232.77:49882/news/list.php?id=b3FCRU5iOU9IemZYc1JQSkY0WG5JZz09
试着用sqlmap跑了一下,没有注入。

用御剑扫一下网址。
扫出来了一个:http://47.107.232.77:49882/news/
打开之后发现一个文件目录,第二个是一个zip文件,下载。
里面是list网页的源码:

Weiterlesen »

题目地址:http://222.18.158.226:50000/

打开之后一个很大的滑稽图标~
有一个链接:http://222.18.158.226:50000/index.php?file=hint.php 点进去显示:flag not here, and flag in ffffllllaaaagggg
很明显,这里没有flag,lag在ffffllllaaaagggg里面。
这个页面源码什么都没有~
返回到原来的题目地址看看源码。 在源码当中发现了一个注释:
按照前面hint链接的形式进入发现一段php代码:

1
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
    class emmm
{
public static function checkFile(&$page)
{
$whitelist = ["source"=>"source.php","hint"=>"hint.php"]; //定义了一个白名单。只有file的名字在这里名单的才可以往下继续进行。只有source.php与hint.php。
if (! isset($page) || !is_string($page)) {
echo "you can't see it";
return false;
}

if (in_array($page, $whitelist)) { //判断file页面是否在白名单里面。
return true;
}
$_page = mb_substr( //mb_substr 在第一个参数的字符串当中,从第二个参数的位置开始,取到第三个参数的位置。
$page,
0,
mb_strpos($page . '?', '?') //mb_strpos — 查找字符串在另一个字符串中首次出现的位置 在这里它在page后面加了一个? 就正好将从第一个问号开始把后面取完了。
);
//重点在这个语句,这个语句会将第一个问号之后的内容都取出来。
//到此的page为:hint.php%3f../../../../../fuck.txt
if (in_array($_page, $whitelist)) {
return true;
}
$_page = urldecode($page); //将file的值url解码
//到此的page为:hint.php?../../../../../fuck.txt
$_page = mb_substr( //再取一遍问号之后的内容
$_page,
0,
mb_strpos($_page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
}
echo "you can't see it";
return false;
}
}
if (! empty($_REQUEST['file'])
&& is_string($_REQUEST['file'])
&& emmm::checkFile($_REQUEST['file'])
) {
include $_REQUEST['file'];
exit;
} else {
echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
}
?>
Weiterlesen »
0%