一些设置代理的思考

前言

平常在做渗透的过程中,经常会用到代理,比如用burp抓包或者挂代理翻墙等。一直有个疑问,就是能不能,一边挂着代理是出口IP为代理IP,然后再在浏览器上挂一个burp的代理,这样在做渗透时候,是不是对方日志里记录的就是我的代理国外IP,而非我的真实IP呢?

说干就干,在腾讯云上开一个tomcat服务,然后去访问,看日志里记录的访问日志,到底是哪个IP,如下:

访问tomcat站点,显示正常
image-20220318232041362

这里有以下几种情况,我分别做了记录:

1、不挂代理

不挂代理访问,显示是本地真实IP
image-20220318153402895

2、启用代理

开启v2代理,记录的是代理IP
在这里插入图片描述

3、同时开启代理

开启v2,同时利用插件开启burp,监听本地回环地址8080,同样记录本地IP

在这里插入图片描述

4、开启代理,sqlmap扫描

sqlmap扫描站点,在开启v2的情况下,同样会被记录真实IP(下图两个都是本地IP)

在这里插入图片描述

5、开启代理,强制sqlmap走代理

可以强制对sqlmap挂v2的代理,这样被记录到的就是代理IP了,不过缺点是扫描很慢

在这里插入图片描述

同理,在本地开启代理情况,默认其它扫描器在扫描时候不启用代理的,会被记录真实IP,除非如上面强制走代理,才会生效。

那么应该如何实现既通过burp,又走代理,防止“查水表”呢,需要做如下配置

6、在burp上设置走代理

在burp配置代理服务器,意为着burp抓到的包都会从代理服务器127.0.0.1的10809端口出去

在这里插入图片描述

然后同样是在Google浏览器配置burp的代理127.0.0.1:8080

在这里插入图片描述

这时候访问http://121.xx.xx.156/333333333,然后在服务器日志看下访问IP,已经是国外代理IP,而非真实的IP地址了

在这里插入图片描述

同理其它工具,比如awvs等,配置走代理也能实现同burp一样效果。

以上,是自己研究的一点体会,如果有大佬有不同见解,请不吝赐教

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对你的问题,我给出以下的代码示例: 首先是模型(Model)的实现,这里我们使用QStandardItemModel作为基类: ```cpp class MyModel : public QStandardItemModel { public: MyModel(QObject *parent = nullptr) : QStandardItemModel(parent) {} enum ColumnIndex { Col1 = 0, Col2, Col3, Col4, Col5, Col6, Col7, Col8 }; int columnCount(const QModelIndex &parent = QModelIndex()) const override { return 8; } QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override { if(!index.isValid()) return QVariant(); if(role == Qt::DecorationRole && index.column() == Col7) { // Icon+文本,这里只列出了icon部分的代码,文本部分请根据自己的需求进行实现 return QIcon(":/icons/icon.png"); } return QStandardItemModel::data(index, role); } }; ``` 然后是委托(Delegate)的实现,这里我们使用QStyledItemDelegate作为基类: ```cpp class MyDelegate : public QStyledItemDelegate { public: MyDelegate(QObject *parent = nullptr) : QStyledItemDelegate(parent) {} void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override { if(!index.isValid()) return; if(index.column() == MyModel::Col7) { // 获取icon QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole)); // 获取文本 QString text = index.data().toString(); // 绘制icon QRect iconRect = option.rect.adjusted(2, 2, -2, -2); icon.paint(painter, iconRect, Qt::AlignLeft | Qt::AlignVCenter); // 绘制文本 QRect textRect = option.rect.adjusted(iconRect.width() + 4, 0, 0, 0); QStyleOptionViewItem textOption(option); textOption.rect = textRect; textOption.displayAlignment = Qt::AlignLeft | Qt::AlignVCenter; textOption.decorationAlignment = Qt::AlignLeft | Qt::AlignVCenter; textOption.palette.setColor(QPalette::Text, Qt::white); // 设置文本颜色 QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &textOption, painter); } else { QStyledItemDelegate::paint(painter, option, index); } } }; ``` 最后,在使用模型的地方,我们需要设置委托: ```cpp MyModel *model = new MyModel(this); QTableView *tableView = new QTableView(this); tableView->setModel(model); MyDelegate *delegate = new MyDelegate(this); tableView->setItemDelegate(delegate); ``` 以上代码示例仅供参考,具体实现方式还需根据实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值